@@ -2009,9 +2009,14 @@ SARA_R5_error_t SARA_R5::socketClose(int socket, int timeout)
2009
2009
char *response;
2010
2010
2011
2011
command = sara_r5_calloc_char (strlen (SARA_R5_CLOSE_SOCKET) + 10 );
2012
- response = sara_r5_calloc_char (128 );
2013
2012
if (command == NULL )
2014
2013
return SARA_R5_ERROR_OUT_OF_MEMORY;
2014
+ response = sara_r5_calloc_char (128 );
2015
+ if (response == NULL )
2016
+ {
2017
+ free (command);
2018
+ return SARA_R5_ERROR_OUT_OF_MEMORY;
2019
+ }
2015
2020
sprintf (command, " %s=%d" , SARA_R5_CLOSE_SOCKET, socket);
2016
2021
2017
2022
err = sendCommandWithResponse (command, SARA_R5_RESPONSE_OK, response, timeout);
@@ -2053,10 +2058,15 @@ SARA_R5_error_t SARA_R5::socketWrite(int socket, const char *str)
2053
2058
SARA_R5_error_t err;
2054
2059
unsigned long writeDelay;
2055
2060
2056
- response = sara_r5_calloc_char (128 );
2057
2061
command = sara_r5_calloc_char (strlen (SARA_R5_WRITE_SOCKET) + 8 );
2058
2062
if (command == NULL )
2059
2063
return SARA_R5_ERROR_OUT_OF_MEMORY;
2064
+ response = sara_r5_calloc_char (128 );
2065
+ if (response == NULL )
2066
+ {
2067
+ free (command);
2068
+ return SARA_R5_ERROR_OUT_OF_MEMORY;
2069
+ }
2060
2070
sprintf (command, " %s=%d,%d" , SARA_R5_WRITE_SOCKET, socket, strlen (str));
2061
2071
2062
2072
err = sendCommandWithResponse (command, " @" , response,
@@ -2098,8 +2108,15 @@ SARA_R5_error_t SARA_R5::socketWriteUDP(int socket, const char *address, int por
2098
2108
SARA_R5_error_t err;
2099
2109
int dataLen = len == -1 ? strlen (str) : len;
2100
2110
2101
- response = sara_r5_calloc_char (128 );
2102
2111
command = sara_r5_calloc_char (64 );
2112
+ if (command == NULL )
2113
+ return SARA_R5_ERROR_OUT_OF_MEMORY;
2114
+ response = sara_r5_calloc_char (128 );
2115
+ if (response == NULL )
2116
+ {
2117
+ free (command);
2118
+ return SARA_R5_ERROR_OUT_OF_MEMORY;
2119
+ }
2103
2120
2104
2121
sprintf (command, " %s=%d,\" %s\" ,%d,%d" , SARA_R5_WRITE_UDP_SOCKET,
2105
2122
socket, address, port, dataLen);
@@ -2260,7 +2277,15 @@ int SARA_R5::socketGetLastError()
2260
2277
int errorCode = -1 ;
2261
2278
2262
2279
command=sara_r5_calloc_char (64 );
2263
- response=sara_r5_calloc_char (128 );
2280
+ if (command == NULL )
2281
+ return SARA_R5_ERROR_OUT_OF_MEMORY;
2282
+
2283
+ response=sara_r5_calloc_char (128 );
2284
+ if (response == NULL )
2285
+ {
2286
+ free (command);
2287
+ return SARA_R5_ERROR_OUT_OF_MEMORY;
2288
+ }
2264
2289
2265
2290
sprintf (command, " %s" , SARA_R5_GET_ERROR);
2266
2291
@@ -3399,6 +3424,7 @@ SARA_R5_error_t SARA_R5::parseSocketReadIndicationUDP(int socket, int length)
3399
3424
err = socketReadUDP (socket, length, readDest);
3400
3425
if (err != SARA_R5_ERROR_SUCCESS)
3401
3426
{
3427
+ free (readDest);
3402
3428
return err;
3403
3429
}
3404
3430
0 commit comments