Skip to content

Commit 84b445f

Browse files
author
Teppo Järvelin
committed
Fixed coverity warnings for class ATHandler and removed unnecessary assert from state machine.
1 parent 54ab974 commit 84b445f

File tree

3 files changed

+12
-14
lines changed

3 files changed

+12
-14
lines changed

features/cellular/easy_cellular/CellularConnectionFSM.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,6 @@ nsapi_error_t CellularConnectionFSM::init()
120120

121121
bool CellularConnectionFSM::power_on()
122122
{
123-
MBED_ASSERT(1);
124123
nsapi_error_t err = _power->on();
125124
if (err != NSAPI_ERROR_OK && err != NSAPI_ERROR_UNSUPPORTED) {
126125
tr_warn("Cellular start failed. Power off/on.");

features/cellular/framework/AT/ATHandler.cpp

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -88,17 +88,18 @@ ATHandler::ATHandler(FileHandle *fh, EventQueue &queue, int timeout, const char
8888
clear_error();
8989

9090
if (output_delimiter) {
91-
_output_delimiter_length = strlen(output_delimiter);
92-
_output_delimiter = new char[_output_delimiter_length];
93-
for (unsigned i=0; i<_output_delimiter_length; i++) {
94-
_output_delimiter[i] = output_delimiter[i];
91+
_output_delimiter = new char[strlen(output_delimiter) + 1];
92+
if (!_output_delimiter) {
93+
MBED_ASSERT(0);
94+
} else {
95+
memcpy(_output_delimiter, output_delimiter, strlen(output_delimiter) + 1);
9596
}
9697
} else {
97-
_output_delimiter = NULL;
98-
_output_delimiter_length = 0;
98+
_output_delimiter = NULL;
9999
}
100100

101101
reset_buffer();
102+
memset(_recv_buff, 0, sizeof(_recv_buff));
102103
memset(_info_resp_prefix, 0, sizeof(_info_resp_prefix));
103104

104105
_current_scope = NotSet;
@@ -481,7 +482,9 @@ ssize_t ATHandler::read_string(char *buf, size_t size, bool read_even_stop_tag)
481482
break;
482483
} else if (c == '\"') {
483484
match_pos = 0;
484-
len--;
485+
if (len > 0) {
486+
len--;
487+
}
485488
continue;
486489
} else if (_stop_tag->len && c == _stop_tag->tag[match_pos]) {
487490
match_pos++;
@@ -694,11 +697,9 @@ void ATHandler::set_3gpp_error(int err, DeviceErrorType error_type)
694697

695698
void ATHandler::at_error(bool error_code_expected, DeviceErrorType error_type)
696699
{
697-
int32_t err = -1;
698-
699700
if (error_code_expected && (error_type == DeviceErrorTypeErrorCMS || error_type == DeviceErrorTypeErrorCME)) {
700701
set_scope(InfoType);
701-
err = read_int();
702+
int32_t err = read_int();
702703

703704
if (err != -1) {
704705
set_3gpp_error(err, error_type);
@@ -1052,7 +1053,7 @@ void ATHandler::cmd_stop()
10521053
return;
10531054
}
10541055
// Finish with CR
1055-
(void)write(_output_delimiter, _output_delimiter_length);
1056+
(void)write(_output_delimiter, strlen(_output_delimiter));
10561057
}
10571058

10581059
size_t ATHandler::write_bytes(const uint8_t *data, size_t len)

features/cellular/framework/AT/ATHandler.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,15 +193,13 @@ class ATHandler
193193
device_err_t _last_at_err;
194194
uint16_t _oob_string_max_length;
195195
char *_output_delimiter;
196-
uint8_t _output_delimiter_length;
197196

198197
struct oob_t {
199198
const char *prefix;
200199
mbed::Callback<void()> cb;
201200
oob_t *next;
202201
};
203202
oob_t *_oobs;
204-
bool _response_terminated;
205203
uint32_t _at_timeout;
206204
uint32_t _previous_at_timeout;
207205

0 commit comments

Comments
 (0)