aboutsummaryrefslogtreecommitdiffstats
path: root/adb
diff options
context:
space:
mode:
authorNick Kralevich <nnk@google.com>2011-06-09 11:27:11 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-06-09 11:27:11 -0700
commit37b9fc6e7c25e4d7f57e1df6954498c8bc3c5a1b (patch)
tree2ca0157623ee265133ee3115c99c8cbfcdb6da9e /adb
parent953907faa38e8deff2b0a8f3c3cd7db68074950a (diff)
parent4ba5a8acba033127befd184f2f78cf0580995b07 (diff)
downloadsystem_core-37b9fc6e7c25e4d7f57e1df6954498c8bc3c5a1b.tar.gz
system_core-37b9fc6e7c25e4d7f57e1df6954498c8bc3c5a1b.tar.bz2
system_core-37b9fc6e7c25e4d7f57e1df6954498c8bc3c5a1b.zip
am 4ba5a8ac: am eafcbe10: am 072a0fac: Merge "Fixed adb crash due to accessing freed memory"
* commit '4ba5a8acba033127befd184f2f78cf0580995b07': Fixed adb crash due to accessing freed memory
Diffstat (limited to 'adb')
-rw-r--r--adb/sockets.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/adb/sockets.c b/adb/sockets.c
index 45d935c0..3d62f1e5 100644
--- a/adb/sockets.c
+++ b/adb/sockets.c
@@ -225,10 +225,12 @@ static void local_socket_close_locked(asocket *s)
s->id, s->peer->id, s->peer->fd);
s->peer->peer = 0;
// tweak to avoid deadlock
- if (s->peer->close == local_socket_close)
+ if (s->peer->close == local_socket_close) {
local_socket_close_locked(s->peer);
- else
+ } else {
s->peer->close(s->peer);
+ }
+ s->peer = 0;
}
/* If we are already closing, or if there are no
@@ -799,6 +801,7 @@ static void smart_socket_close(asocket *s)
if(s->peer) {
s->peer->peer = 0;
s->peer->close(s->peer);
+ s->peer = 0;
}
free(s);
}