New issue
Advanced search Search tips

Issue 780638 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

Integer-overflow in WebRtcAgc_ProcessVad

Project Member Reported by ClusterFuzz, Nov 1 2017

Issue description

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

Fuzzer: libFuzzer_audio_processing_fuzzer
Job Type: libfuzzer_chrome_ubsan
Platform Id: linux

Crash Type: Integer-overflow
Crash Address: 
Crash State:
  WebRtcAgc_ProcessVad
  WebRtcAgc_ProcessDigital
  WebRtcAgc_Process
  
Sanitizer: undefined (UBSAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_ubsan&range=513121:513142

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

Issue filed automatically.

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

Comment 1 by ClusterFuzz, Nov 2 2017

Labels: Test-Predator-AutoOwner
Owner: pbos@webrtc.org
Status: Assigned (was: Untriaged)
Automatically assigning owner based on suspected regression changelist https://webrtc.googlesource.com/src/+/de6914508e97f61430d4380f82aa6dd11ab0560c (Remove pbos@webrtc.org from all OWNERS.).

If this is incorrect, please remove the owner and apply the Test-Predator-Wrong-CLs label.

Comment 2 by pbos@chromium.org, Nov 2 2017

Cc: pbos@chromium.org
Labels: -Test-Predator-AutoOwner Test-Predator-Wrong
Owner: ----
I only removed myself from OWNERS files, this suggestion is bonkers.
Project Member

Comment 3 by bugdroid1@chromium.org, Nov 7 2017

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/7cfbf3a0ffc888e411a677a3402961792bba92aa

commit 7cfbf3a0ffc888e411a677a3402961792bba92aa
Author: Alex Loiko <aleloi@webrtc.org>
Date: Tue Nov 07 15:37:55 2017

Make energy calculation in AGC not overflow.

An energy value is calculated by summing squares of processed audio
samples. The expression 'out*out >> 6' could overflow. In this CL we
change it to 'out*(out>>6) + out*(out*(out%(1<<6))>>6)'.

The which is verified and proven to be equal, but doesn't
overflow. The change also passes our change-detection tests in
GainControlBitExactnessTest.*

We verified with Godbolt that the modulo and divisions are converted
into branch-free bitwise operations.

NOTRY=True # changing comment, tests just passed.

Bug:  chromium:780638 ,  chromium:780376 
Change-Id: I415535193433a2fbc275c643fb4e4026ba3e0bdd
Reviewed-on: https://webrtc-review.googlesource.com/20867
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20589}
[modify] https://crrev.com/7cfbf3a0ffc888e411a677a3402961792bba92aa/modules/audio_processing/agc/legacy/digital_agc.c

Project Member

Comment 4 by ClusterFuzz, Nov 8 2017

ClusterFuzz has detected this issue as fixed in range 514680:514707.

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

Fuzzer: libFuzzer_audio_processing_fuzzer
Job Type: libfuzzer_chrome_ubsan
Platform Id: linux

Crash Type: Integer-overflow
Crash Address: 
Crash State:
  WebRtcAgc_ProcessVad
  WebRtcAgc_ProcessDigital
  WebRtcAgc_Process
  
Sanitizer: undefined (UBSAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_ubsan&range=513121:513142
Fixed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_ubsan&range=514680:514707

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

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 5 by ClusterFuzz, Nov 8 2017

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