diff options
author | George Burgess IV <gbiv@google.com> | 2018-02-17 21:43:55 -0800 |
---|---|---|
committer | Josh Gao <jmgao@google.com> | 2018-02-19 01:05:56 -0800 |
commit | cb2449f851eed55770a1621d0f9f880bed9ada68 (patch) | |
tree | 6167eb98a91d0d3f79351da298c9d729fbd122f5 /adb | |
parent | 277a95bfef00baffbe66fef10e3828d827e16641 (diff) | |
download | core-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.cpp | 1 |
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)) { |