New issue
Advanced search Search tips

Issue 602447 link

Starred by 2 users

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 599523



Sign in to add a comment

Fuzz ProxyResolverV8Tracing

Project Member Reported by mmenke@chromium.org, Apr 11 2016

Issue description

We should consider writing a fuzzer for ProxyResolverV8Tracing, using the fuzzer input as a PAC script, and pre-populating a host resolver with some IPv4/IPv6/both DNS entries, and maybe a dictionary as well.

We could either run the PAC on a number fixed number of inputs in a row, or get inputs from a fuzzer as well.  This will do a lot of testing of v8, unfortunately, but not sure if there's a reasonable way to make it more targeted.  I do think we want to fuzz this code, because of its complexity.  Maybe there's some way to avoid V8?  Haven't thought about it.
 

Comment 1 by eroman@chromium.org, Apr 11 2016

+1

 * Fuzzing V8 can be avoided by fuzz-testing exclusively the layer that dispatches to the worker thread, starts/restarts requests, and issues and caches the underlying DNS. Some surgery of the implementation will be needed, but it already abstracts the interface to V8 through a ProxyResolverV8 instance so should be doable.

 * Would want to fuzz cancellation as a possibility too. The hairiest bits of this code will be around multi-request handling, cancellation, and errors.

Comment 2 by mmenke@chromium.org, Apr 11 2016

Ah, right...we could decide the number and order of DNS requests for each request to do, each time through the resolver (So they could change - we could have a "library" of possible DNS requests, and just pick them them).

To handle cancellation, we can pick two sequence numbers for each request:  When to start, and when to cancel, relative to other events...We have immediately, when the previous request completes, when a DNS lookup starts, and after a DNS lookup completes.  We could make sync and async versions of the last 3, but doing async would return we run one task on the message loop at a time, which I'm not sure RunLoop supports.  We'd also have to think about DNS lookups that resolve synchronously and asynchronously.  This could get pretty hairy, if we want to try and cover all our bases.
Project Member

Comment 3 by sheriffbot@chromium.org, Apr 12 2017

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been available for more than 365 days, and should be re-evaluated. Please re-triage this issue.
The Hotlist-Recharge-Cold label is applied for tracking purposes, and should not be removed after re-triaging the issue.

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

Sign in to add a comment