summaryrefslogtreecommitdiffstats
path: root/adb
diff options
context:
space:
mode:
authorGeorge Burgess IV <gbiv@google.com>2018-02-17 21:43:55 -0800
committerJosh Gao <jmgao@google.com>2018-02-19 01:05:56 -0800
commitcb2449f851eed55770a1621d0f9f880bed9ada68 (patch)
tree6167eb98a91d0d3f79351da298c9d729fbd122f5 /adb
parent277a95bfef00baffbe66fef10e3828d827e16641 (diff)
downloadcore-cb2449f851eed55770a1621d0f9f880bed9ada68.tar.gz
core-cb2449f851eed55770a1621d0f9f880bed9ada68.tar.bz2
core-cb2449f851eed55770a1621d0f9f880bed9ada68.zip
Fix a memory leak
If create_service_thread fails, we'll leak `arg`. This fixes a static analyzer complaint: system/core/adb/services.cpp:298:13: warning: Potential leak of memory pointed to by 'arg' Bug: None Test: Reran the static analyzer. No more complaints about this leak. Change-Id: I5aec7fd78f2cc775b650501b02bdf0039d1647ca
Diffstat (limited to 'adb')
-rw-r--r--adb/services.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/adb/services.cpp b/adb/services.cpp
index 6dc71cfc4..fe74eb6e4 100644
--- a/adb/services.cpp
+++ b/adb/services.cpp
@@ -296,6 +296,7 @@ int service_to_fd(const char* name, const atransport* transport) {
void* arg = strdup(name + 7);
if (arg == NULL) return -1;
ret = create_service_thread("reboot", reboot_service, arg);
+ if (ret < 0) free(arg);
} else if(!strncmp(name, "root:", 5)) {
ret = create_service_thread("root", restart_root_service, nullptr);
} else if(!strncmp(name, "unroot:", 7)) {