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

Issue 761595 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

CHECK failure: IsStringUTF8(*string_value_) in values.cc

Project Member Reported by ClusterFuzz, Sep 2 2017

Issue description

Detailed report: https://clusterfuzz.com/testcase?key=5113522290950144

Fuzzer: libFuzzer_mediasource_MP4_AVC1_pipeline_integration_fuzzer
Job Type: libfuzzer_chrome_asan_debug
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  IsStringUTF8(*string_value_) in values.cc
  base::debug::DebugBreak
  base::Value::Value
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=497039:497107

Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5113522290950144

Issue filed automatically.

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reproducing.md for more information.
 
Cc: msrchandra@chromium.org
Labels: Test-Predator-Wrong-CLs M-63
Owner: jdoerrie@chromium.org
Status: Assigned (was: Untriaged)
Predator and CL could not provide any possible suspects.
Using Code Search for the file, "values.cc" assigning to concern owner.

Suspecting Commit#
https://chromium.googlesource.com/chromium/src/+/cc9f5730ee747c92fb8340818ee185d36bf8a89a

@jdoerrie -- Could you please look into the issue, kindly re-assign if this is not related to your changes.
Thank You.
Cc: jdoerrie@chromium.org
Owner: wolenetz@chromium.org
Similarly to https://bugs.chromium.org/p/chromium/issues/detail?id=758808 this is caused by attempting to log non UTF-8 input. The offending line is https://codesearch.chromium.org/chromium/src/media/formats/mp4/box_definitions.cc?l=669&rcl=a8e0102bd7251be33d03c2b2d3d1afa1a3161921. profile_indication is a uint8_t, which the ostream operator interprets as a literal char. In the crashing case profile_indication is equal to 255 or 0xFF, which is not a valid utf8 character. This issue can be fixed by casting profile_indication to a wider integer type (e.g. static_cast<int>(profile_indication)), or wrapping it in |base::UintToString| inside the log statement. Both of these measures fix the crash and result in the desired log statement of "Unsupported VP9 profile: 255"

Again assigning to wolenetz@ as //media OWNER to decide what exactly should be done.
Components: Internals>Media>Source
Labels: -Pri-1 Pri-2
Indeed - the fuzzer found this non-UTF-8 violation in the MSE MP4 stream parser.  I'll have a fix shortly. I'll see also about fixing some related logs in that file, though there could be more remaining.

This is in a MEDIA_LOG, and results in hitting a DCHECK. I don't this this is P1.
Cc: chcunningham@chromium.org
I only found this one non-UTF-8 log emission location when looking over box_definitions.cc today.

CL: https://chromium-review.googlesource.com/c/chromium/src/+/650627
Project Member

Comment 5 by bugdroid1@chromium.org, Sep 5 2017

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

commit e8597a0fb459021fa4e1e28eec4d79b5a71343cc
Author: Matt Wolenetz <wolenetz@chromium.org>
Date: Tue Sep 05 18:55:29 2017

MSE: Fix DCHECK during VPCodecConfigurationRecord parse failure

Changes the VPCodecConfigurationRecord parse failure to emit a UTF-8 log
string.

BUG= 761595 
TEST=fuzzer case avoids DCHECK

Change-Id: Idae69c350bdf748a6d6f68be69c96d6dd4309b51
Reviewed-on: https://chromium-review.googlesource.com/650627
Commit-Queue: Matthew Wolenetz <wolenetz@chromium.org>
Commit-Queue: Chrome Cunningham <chcunningham@chromium.org>
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499692}
[modify] https://crrev.com/e8597a0fb459021fa4e1e28eec4d79b5a71343cc/media/formats/mp4/box_definitions.cc

Status: Fixed (was: Assigned)
#5 should fix this.  Pending CF verification...
Project Member

Comment 7 by ClusterFuzz, Sep 5 2017

ClusterFuzz has detected this issue as fixed in range 499660:499726.

Detailed report: https://clusterfuzz.com/testcase?key=5113522290950144

Fuzzer: libFuzzer_mediasource_MP4_AVC1_pipeline_integration_fuzzer
Job Type: libfuzzer_chrome_asan_debug
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  IsStringUTF8(*string_value_) in values.cc
  base::debug::DebugBreak
  base::Value::Value
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=497039:497107
Fixed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=499660:499726

Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5113522290950144

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 8 by ClusterFuzz, Sep 6 2017

Labels: ClusterFuzz-Verified
Status: Verified (was: Fixed)
ClusterFuzz testcase 5113522290950144 is verified as fixed, so closing issue as verified.

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.

Sign in to add a comment