New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 632608 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Crash in net::HttpProxyClientSocket::DoDrainBody

Project Member Reported by ClusterFuzz, Jul 29 2016

Issue description

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=6414545329586176

Fuzzer: libfuzzer_net_http_proxy_client_socket_fuzzer
Job Type: libfuzzer_chrome_asan
Platform Id: linux

Crash Type: UNKNOWN
Crash Address: 0x03e90000275a
Crash State:
  net::HttpProxyClientSocket::DoDrainBody
  net::HttpProxyClientSocket::DoLoop
  net::HttpProxyClientSocket::RestartWithAuth
  
Regressed: https://cluster-fuzz.appspot.com/revisions?job=libfuzzer_chrome_asan&range=408389:408457

Minimized Testcase (0.06 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv94BgCeTq1vcfqOGtSGMyISCkFgp8nTU9tBvcaWWSbIVXPBSXxLQBXXJAToq-RSRWPxpRaVQOHMfYC-SRkqP1xRdtzUhEZONN7VxndXGTrXbt3-LtoxmbpzOlrMv73MdJogBIdpkNxT_upPOekPSmPLlS-l-zg?testcase_id=6414545329586176
HTTP/5.0 407
Proxy-Authenticate:Basic
Content-Length:3

P=^:


Filer: rnimmagadda

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reproducing.md for more information.
 
Cc: mmenke@chromium.org
Components: Internals>Network>Proxy Tools>Test>FindIt>CorrectResult
Labels: -Pri-1 -Type-Bug M-54 Findit-for-crash Te-Logged Pri-2 Type-Bug-Regression
Owner: e...@chromium.org
Status: Assigned (was: Untriaged)
Suspecting Below:

Author: erg@google.com
Project: chromium
Changelist: https://chromium.googlesource.com/chromium/src//+/be1a48bcd64ea75939f38a9ab264ee99214313bb
Time: Thu Jan 20 00:12:13 2011
The CL last changed line 74 of file http_proxy_client_socket.cc, which is stack frame 5.

Author: mmenke
Project: chromium
Changelist: https://chromium.googlesource.com/chromium/src//+/8e9314bcf382b9df7caa3ab331e1b0090c27b62f
Time: Fri Apr 15 21:45:02 2016
The CL last changed line 78 of file http_proxy_client_socket_fuzzer.cc, which is stack frame 6.

@erg/mmenke: Could you please look into this issue.

Thank you.

Comment 2 by mmenke@chromium.org, Jul 29 2016

Cc: -mmenke@chromium.org e...@chromium.org
Owner: mmenke@chromium.org
Don't think erg even still works on Chromium.

Comment 3 by mmenke@chromium.org, Jul 29 2016

Turns out this is just a test-only issue, not a real bug in production.  Enabling DCHECKs on the fuzzer bots presumably unearthed it.

Comment 4 by mmenke@chromium.org, Jul 29 2016

Status: Fixed (was: Assigned)
Project Member

Comment 5 by bugdroid1@chromium.org, Jul 29 2016

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

commit 893b812617b63d2b71e38bf2a504d2c5d4657c23
Author: mmenke <mmenke@chromium.org>
Date: Fri Jul 29 17:12:24 2016

Remove a DCHECK on ClientSocketHandle state from proxy code.

This was causing issues for one of our fuzzers.

The DCHECK made sure the ClientSocketHandle was initialized, which was
not the state in tests. Normally, handles set initialized to true
when they are assigned a socket, and the connection callback is invoked.
When the Handle is torn down, if the Handle was initialized, the socket
is returned to the socket pool.  A lot of tests bypass all this, not
using socket pools at all, and just assigning a socket to the
SocketHandle. This results in is_connected being false, which was
triggering the DCHECK.

We could instead make sure that is_initialized is set to true in tests,
but this has minimal value - in production, it's set to true if and only
if a socket is set and the callback invoked, and set to false only when
the socket is destroyed or returned to the socket pool. If the socket is
null, we'll crash very soon with an equally useful crash stack, anyways.
In production, if the connection callback wasn't invoked, the
HttpProxyClientSocket's state machine will catch the issue, anyways.

BUG= 632608 

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

[modify] https://crrev.com/893b812617b63d2b71e38bf2a504d2c5d4657c23/net/http/http_proxy_client_socket.cc

Project Member

Comment 6 by ClusterFuzz, Jul 31 2016

ClusterFuzz has detected this issue as fixed in range 408457:408535.

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=6414545329586176

Fuzzer: libfuzzer_net_http_proxy_client_socket_fuzzer
Job Type: libfuzzer_chrome_asan
Platform Id: linux

Crash Type: UNKNOWN
Crash Address: 0x03e90000275a
Crash State:
  net::HttpProxyClientSocket::DoDrainBody
  net::HttpProxyClientSocket::DoLoop
  net::HttpProxyClientSocket::RestartWithAuth
  
Regressed: https://cluster-fuzz.appspot.com/revisions?job=libfuzzer_chrome_asan&range=408389:408457
Fixed: https://cluster-fuzz.appspot.com/revisions?job=libfuzzer_chrome_asan&range=408457:408535

Minimized Testcase (0.06 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv94BgCeTq1vcfqOGtSGMyISCkFgp8nTU9tBvcaWWSbIVXPBSXxLQBXXJAToq-RSRWPxpRaVQOHMfYC-SRkqP1xRdtzUhEZONN7VxndXGTrXbt3-LtoxmbpzOlrMv73MdJogBIdpkNxT_upPOekPSmPLlS-l-zg?testcase_id=6414545329586176
HTTP/5.0 407
Proxy-Authenticate:Basic
Content-Length:3

P=^:


See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reproducing.md for more information.

If you suspect that the result above is incorrect, try re-doing that job on the test case report page.
Project Member

Comment 7 by sheriffbot@chromium.org, Nov 22 2016

Labels: -Restrict-View-EditIssue
Removing EditIssue view restrictions from ClusterFuzz filed bugs. If you believe that this issue should still be restricted, please reapply the label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Sign in to add a comment