New issue
Advanced search Search tips

Issue 652522 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2016
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

Crash in Android DevTools port forwarding (content/browser/devtools/protocol/tethering_handler.cc)

Project Member Reported by pwnall@chromium.org, Oct 4 2016

Issue description

Device name: flo (Nexus 7)

From "Settings > About Chrome"
Application version:
OS: Android L - google/razor/flo:5.1.1/LMY49S/3276206:userdebug/dev-keys

URLs (if applicable): N/A

Behavior in Android Browser (if applicable): N/A

Steps to reproduce:

(1) Build Chromium for Android in Debug mode
(2) Install Content Shell: build/android/adb_install_apk.py --apk out/Android/apks/ContentShell.apk
(3) Same process as for  http://crbug.com/405472  but use Content Shell instead of Chrome


Expected result: successful navigation


Actual result: crash, stack trace below

--------- beginning of crash
F/libc    ( 2104): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 2149 (Thread-123870)
I/DEBUG   (  184): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (  184): Build fingerprint: 'google/razor/flo:5.1.1/LMY49S/3276206:userdebug/dev-keys'
I/DEBUG   (  184): Revision: '0'
I/DEBUG   (  184): ABI: 'arm'
I/DEBUG   (  184): pid: 2104, tid: 2149, name: Thread-123870  >>> org.chromium.content_shell_apk <<<
I/DEBUG   (  184): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
I/DEBUG   (  184):     r0 b481a2c8  r1 000000d3  r2 00000005  r3 9fdd6691
I/DEBUG   (  184):     r4 9d1af430  r5 b6e19df4  r6 9c083548  r7 00000000
I/DEBUG   (  184):     r8 9d1af388  r9 9c083550  sl 00000000  fp 9d1af438
I/DEBUG   (  184):     ip b6e157dc  sp 9c083530  lr b6df5803  pc a0334c5a  cpsr 800f0030
I/DEBUG   (  184): 
I/DEBUG   (  184): backtrace:
I/DEBUG   (  184):     #00 pc 00af0c5a  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #01 pc 00af0e3f  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #02 pc 0082a2c7  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #03 pc 006b645f  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #04 pc 0082bcb7  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #05 pc 0082a539  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #06 pc 006b645f  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #07 pc 00822ea5  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #08 pc 00822fa1  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #09 pc 00540d23  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #10 pc 019ea82f  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #11 pc 005403c3  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #12 pc 0053eee7  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #13 pc 0055337d  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #14 pc 0056a6f9  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #15 pc 0056ad57  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #16 pc 0056618f  /data/app/org.chromium.content_shell_apk-1/lib/arm/libcontent_shell_content_view.so
I/DEBUG   (  184):     #17 pc 00016baf  /system/lib/libc.so (_ZL15__pthread_startPv+30)
I/DEBUG   (  184):     #18 pc 00014af3  /system/lib/libc.so (__start_thread+6)

--- beginning of stack tool output
signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 2149 (Thread-123870)
pid: 2104, tid: 2149, name: Thread-123870  >>> org.chromium.content_shell_apk <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
     r0 b481a2c8  r1 000000d3  r2 00000005  r3 9fdd6691
     r4 9d1af430  r5 b6e19df4  r6 9c083548  r7 00000000
     r8 9d1af388  r9 9c083550  sl 00000000  fp 9d1af438
     ip b6e157dc  sp 9c083530  lr b6df5803  pc a0334c5a

Stack Trace:
  RELADDR   FUNCTION                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          FILE:LINE
  v------>  Init                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              /usr/local/google/home/costan/chromium/src/content/browser/devtools/protocol/tethering_handler.cc:48
  00af0c5a  HandleAcceptResult                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /usr/local/google/home/costan/chromium/src/content/browser/devtools/protocol/tethering_handler.cc:213
  v------>  HandleAcceptResult                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                /usr/local/google/home/costan/chromium/src/content/browser/devtools/protocol/tethering_handler.cc:209
  00af0e3f  OnAccepted                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        /usr/local/google/home/costan/chromium/src/content/browser/devtools/protocol/tethering_handler.cc:203
  v------>  base::internal::RunMixin<base::Callback<void (int), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> >::Run(int) const                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 /usr/local/google/home/costan/chromium/src/base/callback.h:64
  0082a2c7  net::TCPServerSocket::OnAcceptCompleted(std::__ndk1::unique_ptr<net::StreamSocket, std::__ndk1::default_delete<net::StreamSocket> >*, base::Callback<void (int), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, int)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         /usr/local/google/home/costan/chromium/src/net/socket/tcp_server_socket.cc:106
  006b645f  base::internal::RunMixin<base::Callback<void (blink::mojom::PermissionStatus), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> >::Run(blink::mojom::PermissionStatus) const                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           /usr/local/google/home/costan/chromium/src/base/callback.h:64

*** snipped to fit comment limit ***


This seems very similar to http://crrev.com/491533002

I plan to upload a CL to fix this very soon, as it's blocking me.

 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 4 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e37ae427632f919cceb4f25dfe4669c4d22b313c

commit e37ae427632f919cceb4f25dfe4669c4d22b313c
Author: pwnall <pwnall@chromium.org>
Date: Tue Oct 04 03:50:30 2016

Fix crash in Android DevTools port forwarding handler.

This CL fixes a use-after-free in SocketPump::Init() in
content/browser/devtools/protocol/tethering_handler.cc

BUG= 652522 

Review-Url: https://codereview.chromium.org/2390883003
Cr-Commit-Position: refs/heads/master@{#422696}

[modify] https://crrev.com/e37ae427632f919cceb4f25dfe4669c4d22b313c/content/browser/devtools/protocol/tethering_handler.cc

Status: Fixed (was: Assigned)

Sign in to add a comment