From 94e0776eb88a12c52f9d9869a67822bf83171215 Mon Sep 17 00:00:00 2001 From: Leo Sartre Date: Tue, 5 Jan 2016 12:06:05 +0100 Subject: [PATCH] WA: Fix adb wait-for-device command Without -s argument, adb wait-for-device will make a call to acquire_one_transport() with sinfo->serial.c_str() == "". Waiting for acquire_one_transport() to be reworked to use std::string rather than const char * for serial, work around this by passing NULL when sinfo->serial is not initialized in host_service_to_socket(). Change-Id: Ifef53e0e82850364f5029ee36560376f2a4a5104 Signed-off-by: Leo Sartre --- adb/services.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/adb/services.cpp b/adb/services.cpp index 20166cef7..cd33e7b7d 100644 --- a/adb/services.cpp +++ b/adb/services.cpp @@ -368,8 +368,9 @@ static void wait_for_state(int fd, void* data) { while (true) { bool is_ambiguous = false; std::string error = "unknown error"; - atransport* t = acquire_one_transport(sinfo->transport_type, sinfo->serial.c_str(), - &is_ambiguous, &error); + const char* serial = sinfo->serial.length() ? sinfo->serial.c_str() : NULL; + atransport* t = acquire_one_transport(sinfo->transport_type, serial, &is_ambiguous, &error); + if (t != nullptr && t->connection_state == sinfo->state) { SendOkay(fd); break;