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

Issue 873457 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Last visit 18 days ago
Closed: Aug 15
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Mac
Pri: 1
Type: Bug



Sign in to add a comment

Null-dereference READ in spvtools::opt::Instruction::opcode

Project Member Reported by ClusterFuzz, Aug 11

Issue description

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

Fuzzer: afl_spvtools_opt_performance_fuzzer
Job Type: afl_chrome_asan
Platform Id: linux

Crash Type: Null-dereference READ
Crash Address: 0x000000000028
Crash State:
  spvtools::opt::Instruction::opcode
  spvtools::opt::AggressiveDCEPass::AggressiveDCE
  spvtools::opt::Instruction::ForEachInId
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=afl_chrome_asan&range=580304:580305

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

Issue filed automatically.

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

Comment 1 by ClusterFuzz, Aug 11

Components: Internals>GPU>Internals
Labels: Test-Predator-Auto-Components
Automatically applying components based on crash stacktrace and information from OWNERS files.

If this is incorrect, please apply the Test-Predator-Wrong-Components label.
Project Member

Comment 2 by ClusterFuzz, Aug 11

Cc: 31666...@users.noreply.github.com d...@everburning.com
Labels: Test-Predator-Auto-CC
Automatically adding ccs based on suspected regression changelists:

Update OpPhi instructions after splitting block. (#1783) by 31666470+s-perron@users.noreply.github.com - https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+/ce644d4a2484fe66e53f5b744ebc4d0d5d49e1ca

Remove using std::<foo> statements. (#1756) by dj2@everburning.com - https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+/a5a5ea0e2dfce9c755a88af1074ebe68a44d2ed9

If this is incorrect, please let us know why and apply the Test-Predator-Wrong-CLs label.
Project Member

Comment 3 by ClusterFuzz, Aug 12

Labels: OS-Mac
Labels: M-70
Owner: dsinclair@chromium.org
Status: Assigned (was: Untriaged)
With reference to the  Issue 870514 , assigning it to dsinclair@

dsinclair@ Could you please look into it
Cc: -31666...@users.noreply.github.com -d...@everburning.com dsinclair@chromium.org
Labels: -M-70
Owner: stevenperron@google.com
Cc: -dsinclair@chromium.org stevenperron@google.com
Owner: dsinclair@chromium.org
The spir-v in invalid, but the validator did not pick it up.  There is a function that is returning itself:

 %src_PSMain = OpFunction %v4float None %18
...
               OpReturnValue %src_PSMain

This is invalid for two reasons.  First it is returning a value of the wrong type, and second it is using the result of an OpFunction in a instruction where it cannot be used.  See the description of OpFunction (https://www.khronos.org/registry/spir-v/specs/1.1/SPIRV.html#OpFunction).

Cc: dsinclair@chromium.org
Owner: alanbaker@google.com
Project Member

Comment 8 by ClusterFuzz, Aug 15

ClusterFuzz has detected this issue as fixed in range 583092:583110.

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

Fuzzer: afl_spvtools_opt_performance_fuzzer
Job Type: afl_chrome_asan
Platform Id: linux

Crash Type: Null-dereference READ
Crash Address: 0x000000000028
Crash State:
  spvtools::opt::Instruction::opcode
  spvtools::opt::AggressiveDCEPass::AggressiveDCE
  spvtools::opt::Instruction::ForEachInId
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=afl_chrome_asan&range=580304:580305
Fixed: https://clusterfuzz.com/revisions?job=afl_chrome_asan&range=583092:583110

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

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reference.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 9 by ClusterFuzz, Aug 15

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