libsysutils: fix null pointer and memory leak issue
In SocketClient::quoteArg function 1. Fix potential null pointer accessing issue 2. Fix potential memory leak introduced by realloc fail Change-Id: I1ca0f9089290d43452e9a71428244545f4ed866b Signed-off-by: Hong-Mei Li <a21834@motorola.com>
This commit is contained in:
parent
f5562cb66c
commit
544a7f7a36
|
@ -112,6 +112,12 @@ char *SocketClient::quoteArg(const char *arg) {
|
|||
char *result = (char *)malloc(len * 2 + 3);
|
||||
char *current = result;
|
||||
const char *end = arg + len;
|
||||
char *oldresult;
|
||||
|
||||
if(result == NULL) {
|
||||
SLOGW("malloc error (%s)", strerror(errno));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
*(current++) = '"';
|
||||
while (arg < end) {
|
||||
|
@ -125,8 +131,9 @@ char *SocketClient::quoteArg(const char *arg) {
|
|||
}
|
||||
*(current++) = '"';
|
||||
*(current++) = '\0';
|
||||
oldresult = result; // save pointer in case realloc fails
|
||||
result = (char *)realloc(result, current-result);
|
||||
return result;
|
||||
return result ? result : oldresult;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue