mirror of https://github.com/ARMmbed/mbed-os.git
Coverity issues fixed
parent
0a73eda9d4
commit
84063bf222
|
@ -110,6 +110,11 @@ int hex_str_to_char_str(const char *str, uint16_t len, char *buf)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void hex_to_char(const char *hex, char &buf)
|
||||||
|
{
|
||||||
|
buf = CellularUtil_stub::char_ptr[CellularUtil_stub::char_pos++];
|
||||||
|
}
|
||||||
|
|
||||||
void uint_to_binary_str(uint32_t num, char *str, int str_size, int bit_cnt)
|
void uint_to_binary_str(uint32_t num, char *str, int str_size, int bit_cnt)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -49,12 +49,14 @@ ESP8266::ESP8266(PinName tx, PinName rx, bool debug, PinName rts, PinName cts)
|
||||||
_parser(&_serial),
|
_parser(&_serial),
|
||||||
_packets(0),
|
_packets(0),
|
||||||
_packets_end(&_packets),
|
_packets_end(&_packets),
|
||||||
|
_sock_active_id(-1),
|
||||||
_heap_usage(0),
|
_heap_usage(0),
|
||||||
_connect_error(0),
|
_connect_error(0),
|
||||||
_disconnect(false),
|
_disconnect(false),
|
||||||
_fail(false),
|
_fail(false),
|
||||||
_sock_already(false),
|
_sock_already(false),
|
||||||
_closed(false),
|
_closed(false),
|
||||||
|
_error(false),
|
||||||
_busy(false),
|
_busy(false),
|
||||||
_reset_check(_rmutex),
|
_reset_check(_rmutex),
|
||||||
_reset_done(false),
|
_reset_done(false),
|
||||||
|
@ -97,6 +99,10 @@ ESP8266::ESP8266(PinName tx, PinName rx, bool debug, PinName rts, PinName cts)
|
||||||
_sock_i[i].tcp_data_avbl = 0;
|
_sock_i[i].tcp_data_avbl = 0;
|
||||||
_sock_i[i].tcp_data_rcvd = 0;
|
_sock_i[i].tcp_data_rcvd = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_scan_r.res = NULL;
|
||||||
|
_scan_r.limit = 0;
|
||||||
|
_scan_r.cnt = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ESP8266::at_available()
|
bool ESP8266::at_available()
|
||||||
|
@ -328,8 +334,8 @@ nsapi_error_t ESP8266::connect(const char *ap, const char *passPhrase)
|
||||||
_smutex.lock();
|
_smutex.lock();
|
||||||
set_timeout(ESP8266_CONNECT_TIMEOUT);
|
set_timeout(ESP8266_CONNECT_TIMEOUT);
|
||||||
|
|
||||||
_parser.send("AT+CWJAP_CUR=\"%s\",\"%s\"", ap, passPhrase);
|
bool res = _parser.send("AT+CWJAP_CUR=\"%s\",\"%s\"", ap, passPhrase);
|
||||||
if (!_parser.recv("OK\n")) {
|
if (!res || !_parser.recv("OK\n")) {
|
||||||
if (_fail) {
|
if (_fail) {
|
||||||
if (_connect_error == 1) {
|
if (_connect_error == 1) {
|
||||||
ret = NSAPI_ERROR_CONNECTION_TIMEOUT;
|
ret = NSAPI_ERROR_CONNECTION_TIMEOUT;
|
||||||
|
|
|
@ -94,6 +94,7 @@ ESP8266Interface::ESP8266Interface(PinName tx, PinName rx, bool debug, PinName r
|
||||||
_if_blocking(true),
|
_if_blocking(true),
|
||||||
_if_connected(_cmutex),
|
_if_connected(_cmutex),
|
||||||
_initialized(false),
|
_initialized(false),
|
||||||
|
_connect_retval(NSAPI_ERROR_OK),
|
||||||
_conn_stat(NSAPI_STATUS_DISCONNECTED),
|
_conn_stat(NSAPI_STATUS_DISCONNECTED),
|
||||||
_conn_stat_cb(NULL),
|
_conn_stat_cb(NULL),
|
||||||
_global_event_queue(mbed_event_queue()), // Needs to be set before attaching event() to SIGIO
|
_global_event_queue(mbed_event_queue()), // Needs to be set before attaching event() to SIGIO
|
||||||
|
@ -298,7 +299,7 @@ int ESP8266Interface::set_credentials(const char *ssid, const char *pass, nsapi_
|
||||||
if (pass_length >= ESP8266_PASSPHRASE_MIN_LENGTH
|
if (pass_length >= ESP8266_PASSPHRASE_MIN_LENGTH
|
||||||
&& pass_length <= ESP8266_PASSPHRASE_MAX_LENGTH) {
|
&& pass_length <= ESP8266_PASSPHRASE_MAX_LENGTH) {
|
||||||
memset(ap_pass, 0, sizeof(ap_pass));
|
memset(ap_pass, 0, sizeof(ap_pass));
|
||||||
strncpy(ap_pass, pass, sizeof(ap_pass));
|
strncpy(ap_pass, pass, ESP8266_PASSPHRASE_MAX_LENGTH);
|
||||||
} else {
|
} else {
|
||||||
return NSAPI_ERROR_PARAMETER;
|
return NSAPI_ERROR_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
|
@ -698,7 +698,7 @@ ssize_t ATHandler::read_hex_string(char *buf, size_t size)
|
||||||
} else {
|
} else {
|
||||||
hexbuf[read_idx % 2] = c;
|
hexbuf[read_idx % 2] = c;
|
||||||
if (read_idx % 2 == 1) {
|
if (read_idx % 2 == 1) {
|
||||||
hex_str_to_char_str(hexbuf, 2, buf + buf_idx);
|
hex_to_char(hexbuf, *(buf + buf_idx));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -923,7 +923,7 @@ void ATHandler::resp(const char *prefix, bool check_urc)
|
||||||
|
|
||||||
while (!get_last_error()) {
|
while (!get_last_error()) {
|
||||||
|
|
||||||
match(CRLF, CRLF_LENGTH);
|
(void)match(CRLF, CRLF_LENGTH);
|
||||||
|
|
||||||
if (match(OK, OK_LENGTH)) {
|
if (match(OK, OK_LENGTH)) {
|
||||||
set_scope(RespType);
|
set_scope(RespType);
|
||||||
|
@ -1281,6 +1281,7 @@ void ATHandler::cmd_start_stop(const char *cmd, const char *cmd_chr, const char
|
||||||
|
|
||||||
nsapi_error_t ATHandler::at_cmd_str(const char *cmd, const char *cmd_chr, char *resp_buf, size_t buf_size, const char *format, ...)
|
nsapi_error_t ATHandler::at_cmd_str(const char *cmd, const char *cmd_chr, char *resp_buf, size_t buf_size, const char *format, ...)
|
||||||
{
|
{
|
||||||
|
MBED_ASSERT(strlen(cmd) < BUFF_SIZE);
|
||||||
lock();
|
lock();
|
||||||
|
|
||||||
handle_start(cmd, cmd_chr);
|
handle_start(cmd, cmd_chr);
|
||||||
|
|
|
@ -188,7 +188,7 @@ void AT_CellularSMS::cmt_urc()
|
||||||
{
|
{
|
||||||
tr_debug("CMT_URC called");
|
tr_debug("CMT_URC called");
|
||||||
//+CMT: <oa>,[<alpha>],<scts>[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]<CR><LF><data>
|
//+CMT: <oa>,[<alpha>],<scts>[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]<CR><LF><data>
|
||||||
_at.consume_to_stop_tag();
|
(void)_at.consume_to_stop_tag();
|
||||||
// call user defined callback function
|
// call user defined callback function
|
||||||
if (_cb) {
|
if (_cb) {
|
||||||
_cb();
|
_cb();
|
||||||
|
@ -1205,7 +1205,7 @@ uint16_t AT_CellularSMS::unpack_7_bit_gsm_to_str(const char *str, int len, char
|
||||||
char tmp1;
|
char tmp1;
|
||||||
|
|
||||||
if (padding_bits) {
|
if (padding_bits) {
|
||||||
hex_str_to_char_str(str, 2, &tmp);
|
hex_to_char(str, tmp);
|
||||||
buf[decodedCount] = gsm_to_ascii[(tmp >> padding_bits) & 0x7F];
|
buf[decodedCount] = gsm_to_ascii[(tmp >> padding_bits) & 0x7F];
|
||||||
strCount++;
|
strCount++;
|
||||||
decodedCount++;
|
decodedCount++;
|
||||||
|
@ -1213,19 +1213,19 @@ uint16_t AT_CellularSMS::unpack_7_bit_gsm_to_str(const char *str, int len, char
|
||||||
|
|
||||||
while (strCount < len) {
|
while (strCount < len) {
|
||||||
shift = (strCount - padding_bits) % 7;
|
shift = (strCount - padding_bits) % 7;
|
||||||
hex_str_to_char_str(str + strCount * 2, 2, &tmp);
|
hex_to_char(str + strCount * 2, tmp);
|
||||||
if (shift == 0) {
|
if (shift == 0) {
|
||||||
buf[decodedCount] = gsm_to_ascii[tmp & 0x7F];
|
buf[decodedCount] = gsm_to_ascii[tmp & 0x7F];
|
||||||
} else if (shift == 6) {
|
} else if (shift == 6) {
|
||||||
hex_str_to_char_str(str + (strCount - 1) * 2, 2, &tmp1);
|
hex_to_char(str + (strCount - 1) * 2, tmp1);
|
||||||
buf[decodedCount] = gsm_to_ascii[(((tmp1 >> 2)) | (tmp << 6)) & 0x7F];
|
buf[decodedCount] = gsm_to_ascii[(((tmp1 >> 2)) | (tmp << 6)) & 0x7F];
|
||||||
if (decodedCount + 1 < msg_len) {
|
if (decodedCount + 1 < msg_len) {
|
||||||
hex_str_to_char_str(str + strCount * 2, 2, &tmp);
|
hex_to_char(str + strCount * 2, tmp);
|
||||||
decodedCount++;
|
decodedCount++;
|
||||||
buf[decodedCount] = gsm_to_ascii[(tmp >> 1) & 0x7F];
|
buf[decodedCount] = gsm_to_ascii[(tmp >> 1) & 0x7F];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
hex_str_to_char_str(str + (strCount - 1) * 2, 2, &tmp1);
|
hex_to_char(str + (strCount - 1) * 2, tmp1);
|
||||||
buf[decodedCount] = gsm_to_ascii[(((tmp1 >> (8 - shift))) | ((tmp << shift))) & 0x7F];
|
buf[decodedCount] = gsm_to_ascii[(((tmp1 >> (8 - shift))) | ((tmp << shift))) & 0x7F];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -271,15 +271,22 @@ int hex_str_to_char_str(const char *str, uint16_t len, char *buf)
|
||||||
{
|
{
|
||||||
int strcount = 0;
|
int strcount = 0;
|
||||||
for (int i = 0; i + 1 < len; i += 2) {
|
for (int i = 0; i + 1 < len; i += 2) {
|
||||||
int upper = hex_str_to_int(str + i, 1);
|
char tmp;
|
||||||
int lower = hex_str_to_int(str + i + 1, 1);
|
hex_to_char(str + i, tmp);
|
||||||
buf[strcount] = ((upper << 4) & 0xF0) | (lower & 0x0F);
|
buf[strcount] = tmp;
|
||||||
strcount++;
|
strcount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return strcount;
|
return strcount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void hex_to_char(const char *hex, char &buf)
|
||||||
|
{
|
||||||
|
int upper = hex_str_to_int(hex, 1);
|
||||||
|
int lower = hex_str_to_int(hex + 1, 1);
|
||||||
|
buf = ((upper << 4) & 0xF0) | (lower & 0x0F);
|
||||||
|
}
|
||||||
|
|
||||||
void uint_to_binary_str(uint32_t num, char *str, int str_size, int bit_cnt)
|
void uint_to_binary_str(uint32_t num, char *str, int str_size, int bit_cnt)
|
||||||
{
|
{
|
||||||
if (!str || str_size < bit_cnt) {
|
if (!str || str_size < bit_cnt) {
|
||||||
|
|
|
@ -105,6 +105,13 @@ int hex_str_to_int(const char *hex_string, int hex_string_length);
|
||||||
*/
|
*/
|
||||||
int hex_str_to_char_str(const char *str, uint16_t len, char *buf);
|
int hex_str_to_char_str(const char *str, uint16_t len, char *buf);
|
||||||
|
|
||||||
|
/** Converts the given hex string to char
|
||||||
|
*
|
||||||
|
* @param str A hex value that is converted to char
|
||||||
|
* @param buf A char variable where result conversion is stored
|
||||||
|
*/
|
||||||
|
void hex_to_char(const char *hex, char &buf);
|
||||||
|
|
||||||
/** Converts the given uint to binary string. Fills the given str starting from [0] with the number of bits defined by bit_cnt
|
/** Converts the given uint to binary string. Fills the given str starting from [0] with the number of bits defined by bit_cnt
|
||||||
* For example uint_to_binary_string(9, str, 10) would fill str "0000001001"
|
* For example uint_to_binary_string(9, str, 10) would fill str "0000001001"
|
||||||
* For example uint_to_binary_string(9, str, 3) would fill str "001"
|
* For example uint_to_binary_string(9, str, 3) would fill str "001"
|
||||||
|
|
|
@ -478,6 +478,7 @@ nsapi_size_or_error_t QUECTEL_M26_CellularStack::socket_sendto_impl(CellularSock
|
||||||
_at.resp_start("+QISACK:");
|
_at.resp_start("+QISACK:");
|
||||||
sent_len_before = _at.read_int();
|
sent_len_before = _at.read_int();
|
||||||
sent_acked = _at.read_int();
|
sent_acked = _at.read_int();
|
||||||
|
(void)sent_acked;
|
||||||
sent_nacked = _at.read_int();
|
sent_nacked = _at.read_int();
|
||||||
_at.resp_stop();
|
_at.resp_stop();
|
||||||
|
|
||||||
|
|
|
@ -162,6 +162,7 @@ void LWIP::tcpip_init_irq(void *eh)
|
||||||
LWIP::LWIP()
|
LWIP::LWIP()
|
||||||
{
|
{
|
||||||
default_interface = NULL;
|
default_interface = NULL;
|
||||||
|
tcpip_thread_id = NULL;
|
||||||
|
|
||||||
// Seed lwip random
|
// Seed lwip random
|
||||||
lwip_seed_random();
|
lwip_seed_random();
|
||||||
|
@ -208,7 +209,9 @@ nsapi_error_t LWIP::add_dns_server(const SocketAddress &address, const char *int
|
||||||
const ip_addr_t *ip_addr_move;
|
const ip_addr_t *ip_addr_move;
|
||||||
ip_addr_t ip_addr;
|
ip_addr_t ip_addr;
|
||||||
|
|
||||||
convert_mbed_addr_to_lwip(&ip_addr, &addr);
|
if (!convert_mbed_addr_to_lwip(&ip_addr, &addr)) {
|
||||||
|
return NSAPI_ERROR_PARAMETER;
|
||||||
|
}
|
||||||
|
|
||||||
if (ip_addr_isany(&ip_addr)) {
|
if (ip_addr_isany(&ip_addr)) {
|
||||||
return NSAPI_ERROR_NO_ADDRESS;
|
return NSAPI_ERROR_NO_ADDRESS;
|
||||||
|
|
Loading…
Reference in New Issue