8f5daadcc1
The ADB (Android Debug Bridge) daemon suffers from a file descriptor leak. When transfering file descriptors, opened by the adbd daemon, to a JDWP process for debugging through sendmsg, the file descriptor is duplicated by the kernel and a copy is transfered to the JDWP process. Adbd neglects to close it's copy of the descriptor after the sendmsg call which causes a file descriptor leak in the process. Eventually this causes the daemon to hit its maximum roof of opened file descriptors thus making it impossible for the process to serve any new commands from the adb server. Jdwp_service.c has been modified to close the file descriptor after the send message call has succeded. Also, the socket used for transfering the file descriptor is set to blocking mode before the sendmsg call since the adbd processes needs to know when the duplication has been completed by the kernel. The flags are reset to its original state after the sendmsg call. Change-Id: I76b15460301ac01e432f5ce8678ff58c658c16f2 Signed-off-by: Christian Bejram <christian.bejram@stericsson.com> |
||
---|---|---|
adb | ||
cpio | ||
debuggerd | ||
fastboot | ||
include | ||
init | ||
libacc | ||
libctest | ||
libcutils | ||
liblinenoise | ||
liblog | ||
libmincrypt | ||
libnetutils | ||
libpixelflinger | ||
libsysutils | ||
libzipfile | ||
logcat | ||
logwrapper | ||
mkbootimg | ||
netcfg | ||
nexus | ||
rootdir | ||
sh | ||
toolbox | ||
vold | ||
.gitignore | ||
Android.mk | ||
README |
README
The system/ directory is intended for pieces of the world that are the core of the embedded linux platform at the heart of Android. These essential bits are required for basic booting, operation, and debugging. They should not depend on libraries outside of system/... (some of them do currently -- they need to be updated or changed) and they should not be required for the simulator build. The license for all these pieces should be clean (Apache2, BSD, or MIT). Currently system/bluetooth/... and system/extra/... have some pieces with GPL/LGPL licensed code. Assorted Issues: - pppd depends on libutils for logging - pppd depends on libcrypt/libcrypto - init, linker, debuggerd, toolbox, usbd depend on libcutils - should probably rename bionic to libc