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

Issue 747244 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Email to this user bounced
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug



Sign in to add a comment

Null-dereference READ in sh::TSymbolUniqueId::get

Project Member Reported by ClusterFuzz, Jul 21 2017

Issue description

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

Fuzzer: afl_angle_translator_fuzzer
Job Type: afl_chrome_asan
Platform Id: linux

Crash Type: Null-dereference READ
Crash Address: 0x000000000000
Crash State:
  sh::TSymbolUniqueId::get
  sh::TIntermTraverser::createTempSymbol
  createTempInitDeclaration
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=afl_chrome_asan&range=488384:488514

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


Issue filed automatically.

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reproducing.md for more information.
 
Cc: oetu...@nvidia.com
Components: Internals>GPU>ANGLE
Labels: Test-Predator-Wrong-CLs M-61
Owner: jmad...@chromium.org
Status: Assigned (was: Untriaged)
Predator and CL did not provide any possible suspects.
Using Code Search for the file, "SymbolTable.cpp" assigning to the concern owner.

Suspecing Commit#
https://chromium.googlesource.com/angle/angle.git/+/a5e693afbf5213052f096a36ae7e0b1acc3e1922

Assigning to one of the reviewers.
@jmadill -- Could you please look into the issue, kindly re-assign if this is not related to your changes.
Thank You.

Comment 2 by oetu...@nvidia.com, Jul 21 2017

Status: Started (was: Assigned)
I'm taking this - the null-pointer dereference was added by my patch, though the bug was hiding in the code from much earlier. It's in RewriteDoWhile.

Comment 3 by oetu...@nvidia.com, Jul 21 2017

Owner: oetu...@nvidia.com
Meant to assign myself.
Project Member

Comment 5 by bugdroid1@chromium.org, Jul 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/590f62359b5869f29c5b8d18551436c0a51e8068

commit 590f62359b5869f29c5b8d18551436c0a51e8068
Author: Olli Etuaho <oetuaho@nvidia.com>
Date: Fri Jul 21 15:41:54 2017

Fix getting temporary id in RewriteDoWhile

There's been a long-standing bug in RewriteDoWhile where it would only
call nextTemporaryId() after it had created the temporary variable.
This escalated into a null pointer dereference in the recent symbol
table refactoring, and initializing the traverser with the symbol
table was also missing.

BUG= chromium:747244 
TEST=angle_unittests

Change-Id: I8987a609bb5d7d49e3c3e284fc42a2e53e38dafa
Reviewed-on: https://chromium-review.googlesource.com/580887
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>

[add] https://crrev.com/590f62359b5869f29c5b8d18551436c0a51e8068/src/tests/compiler_tests/RewriteDoWhile_test.cpp
[modify] https://crrev.com/590f62359b5869f29c5b8d18551436c0a51e8068/src/compiler/translator/RewriteDoWhile.cpp
[modify] https://crrev.com/590f62359b5869f29c5b8d18551436c0a51e8068/src/tests/angle_unittests.gypi

Project Member

Comment 6 by bugdroid1@chromium.org, Jul 28 2017

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

commit 5d1a1066a1eb50b250204e3f86d582502af0e9c1
Author: Yuly Novikov <ynovikov@chromium.org>
Date: Fri Jul 28 00:25:05 2017

Roll ANGLE 0d2ecb4..40ac783

https://chromium.googlesource.com/angle/angle.git/+log/0d2ecb4..40ac783

BUG=,chromium:747244

TBR=jmadill@chromium.org,geofflang@chromium.org,cwallez@chromium.org

TEST=bots

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

Change-Id: I25f283b82c5dcf7976d40e44c26b58a976ef02e6
Reviewed-on: https://chromium-review.googlesource.com/590170
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490156}
[modify] https://crrev.com/5d1a1066a1eb50b250204e3f86d582502af0e9c1/DEPS

Project Member

Comment 7 by ClusterFuzz, Jul 28 2017

ClusterFuzz has detected this issue as fixed in range 490107:490254.

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

Fuzzer: afl_angle_translator_fuzzer
Job Type: afl_chrome_asan
Platform Id: linux

Crash Type: Null-dereference READ
Crash Address: 0x000000000000
Crash State:
  sh::TSymbolUniqueId::get
  sh::TIntermTraverser::createTempSymbol
  createTempInitDeclaration
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=afl_chrome_asan&range=488384:488514
Fixed: https://clusterfuzz.com/revisions?job=afl_chrome_asan&range=490107:490254

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


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, Jul 28 2017

Labels: ClusterFuzz-Verified
Status: Verified (was: Started)
ClusterFuzz testcase 6434207470714880 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