adb: fix fd double close, Subprocess lifetime issue.
This commit fixes two somewhat related issues in shell_service. - The fd returned by StartSubprocess is owned by a unique_fd contained in the Subprocess object, but also gets closed by the caller. Resolve this by duping the returned file descriptor. - A Subprocess object can be destroyed immediately after its initial construction in StartSubprocess if we're sufficiently unlucky. Split up the fork/exec and "start management thread" steps, so that we can safely do everything we need to do on the Subprocess before handing it over to the thread that'll eventually destroy it. Also includes squashed patches from AOSP master that allow for use of unique_fd inside adb. Bug: http://b/29254462 Change-Id: Id9cf0b7e7a7293bee7176919edc758597691c636 (cherry picked from commit c0e6e40c) (cherry picked from commit 54c72aac) (cherry picked from commit 2c5d1d7c) (cherry picked from commit 2a7b8633) (cherry picked from commit 13ea01db) (cherry picked from commit 344778da)
Loading
Please register or sign in to comment