No description
Find a file
Yabin Cui f4b9928563 adb: disconnect: fix write-after-free memory corruption and crash.
Transport atransport objects are semi-reference counted: the input and
output threads each hold a reference. The adb disconnect command was
calling transport_unref to release a reference that it never had in the
first place. This meant that the refcount dropped to zero and the object
was deleted before either the input or output thread released its
reference. When that last thread released its reference, it wrote to
freed memory and also sometimes crashed.

This fix is to not release any unheld reference, instead it just kicks
the transport to break remote_read in output_thread. So all transport
close flow goes the following way:
output_thread (exit) -> main thread (offline the transport) ->
input thread (exit) -> main thread (destroy the transport)

Change-Id: Iad1fe718acc8716f3a79c8c22b426a1b2450452c
2015-08-27 14:41:07 -07:00
adb adb: disconnect: fix write-after-free memory corruption and crash. 2015-08-27 14:41:07 -07:00
adf Adf: Remove unused variable 2015-07-27 22:08:16 -07:00
base Fix the Mac libbase build. 2015-08-13 20:09:29 -07:00
cpio makebootfs: use libcutils shared libraries 2015-04-15 10:32:19 -07:00
crash_reporter crash_reporter: Run with supplemental groups 2015-08-24 23:56:07 -07:00
debuggerd bundle init.rc contents with its service 2015-08-21 10:14:43 -07:00
fastboot Fix missing <stdarg.h>. 2015-08-25 19:34:13 -07:00
fs_mgr Add |opts| argument to android_fork_execvp_ext 2015-08-19 11:00:37 -07:00
healthd healthd: Adds cycle_count, current_now and full_charge properties. 2015-08-24 13:01:16 -07:00
include Add macro to call event logger for errors. 2015-08-26 15:59:06 -07:00
init init: import init rc scripts from file systems after mount_all 2015-08-21 10:14:43 -07:00
libbacktrace Display the map offset for each frame. 2015-08-20 14:07:30 -07:00
libcutils strdup16to8.c: fix benign integer underflow. 2015-08-27 10:30:50 -07:00
libdiskconfig am eb075e28: am c8179498: am 2f62edf7: Merge "libdiskconfig: Turn on -Werror" 2014-05-21 21:19:27 +00:00
libion Remove LOCAL_ADDITIONAL_DEPENDENCIES in cases where it's not needed. 2015-04-02 14:31:07 -07:00
liblog Add macro to call event logger for errors. 2015-08-26 15:59:06 -07:00
libmemtrack Add missing <malloc.h> and <string.h> includes. 2015-01-28 11:37:57 -08:00
libmincrypt Enable clang compilation. 2015-05-14 10:53:48 -07:00
libnativebridge Use __ANDROID__ instead of HAVE_ANDROID_OS. 2015-07-30 09:33:43 -07:00
libnetutils Use __ANDROID__ instead of HAVE_ANDROID_OS. 2015-07-30 09:33:43 -07:00
libpixelflinger To compile with llvm integrated assembler. 2015-08-21 15:58:26 -07:00
libprocessgroup Remove uses of libcxx.mk. 2015-03-27 11:24:04 -07:00
libsparse libsparse: use strcmp and validate last_used pointer 2015-08-21 14:23:31 +00:00
libsuspend Libsuspend: Remove unused variable 2014-11-24 18:53:44 -08:00
libsync Remove LOCAL_ADDITIONAL_DEPENDENCIES in cases where it's not needed. 2015-04-02 14:31:07 -07:00
libsysutils Add missing <malloc.h> and <string.h> includes. 2015-01-28 11:37:57 -08:00
libusbhost am 0d8943c2: am e4c5b614: Merge "libusbhost: Fix IOCTL call during usb_request_cancel" 2014-08-12 21:05:43 +00:00
libutils libutils: Enable LOCAL_SANITIZE := integer 2015-08-24 10:51:38 -07:00
libziparchive Fix ODR issues in ART. 2015-06-29 16:27:44 -07:00
lmkd bundle init.rc contents with its service 2015-08-21 10:14:43 -07:00
logcat bundle init.rc contents with its service 2015-08-21 10:14:43 -07:00
logd logd: klogd and Mediatek 2015-08-26 14:57:16 -07:00
logwrapper Add FORK_EXECVP_OPTION_CAPTURE_OUTPUT to logwrap.h 2015-08-21 17:14:59 -07:00
metricsd metricsd: Use system properties to store build time metadata. 2015-08-25 16:23:04 -07:00
mkbootimg mkbootimg: misc typo fixes 2015-06-04 09:59:01 -07:00
reboot reboot: Turn on -Werror 2014-05-21 12:58:38 -07:00
rootdir remove TARGET_PROVIDES_INIT_RC 2015-08-24 13:56:43 -07:00
run-as package missing include for string.h 2015-04-01 11:15:37 -07:00
sdcard Move sdcard off PAGESIZE and onto PAGE_SIZE. 2015-07-28 16:36:47 -07:00
toolbox lsof fixes. 2015-08-24 17:21:31 -07:00
tzdatacheck Executable to run on boot that removes old tzdata if needed 2015-04-13 11:38:32 +01:00
.gitignore Ignore adb/*.pyc files 2015-08-11 12:59:58 -07:00
Android.mk Remove the simulator target from all makefiles. 2011-07-11 22:12:32 -07:00
CleanSpec.mk Add a CleanSpec for grep/toolbox. 2015-03-22 18:04:54 -07:00
MODULE_LICENSE_APACHE2 auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
NOTICE Fix omission in NOTICE file. 2013-07-30 13:56:55 -07:00