am a85a5ba9: am b6b40079: adb: Clean up argument passing for create_service_thread()
Merge commit 'a85a5ba9fdfb7f31f8580a71c4f95313d9236884'
* commit 'a85a5ba9fdfb7f31f8580a71c4f95313d9236884':
adb: Clean up argument passing for create_service_thread()
diff --git a/adb/services.c b/adb/services.c
index cd02b36..b5df554 100644
--- a/adb/services.c
+++ b/adb/services.c
@@ -63,6 +63,7 @@
adb_mutex_lock(&dns_lock);
hp = gethostbyname(hostname);
+ free(cookie);
if(hp == 0) {
writex(fd, &zero, 4);
} else {
@@ -184,6 +185,7 @@
snprintf(buf, sizeof(buf), "reboot failed: %s\n", strerror(errno));
writex(fd, buf, strlen(buf));
}
+ free(arg);
adb_close(fd);
}
@@ -386,10 +388,9 @@
} else if(!strncmp(name, "remount:", 8)) {
ret = create_service_thread(remount_service, NULL);
} else if(!strncmp(name, "reboot:", 7)) {
- const char* arg = name + 7;
- if (*name == 0)
- arg = NULL;
- ret = create_service_thread(reboot_service, (void *)arg);
+ void* arg = strdup(name + 7);
+ if(arg == 0) return -1;
+ ret = create_service_thread(reboot_service, arg);
} else if(!strncmp(name, "root:", 5)) {
ret = create_service_thread(restart_root_service, NULL);
} else if(!strncmp(name, "tcpip:", 6)) {