diff options
Diffstat (limited to 'adb/sockets.c')
| -rw-r--r-- | adb/sockets.c | 7 |
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); } |
