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

Issue 807425 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Mac
Pri: 2
Type: Bug



Sign in to add a comment

Timeout in pdf_font_fuzzer

Project Member Reported by ClusterFuzz, Jan 30 2018

Issue description

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

Fuzzer: libFuzzer_pdf_font_fuzzer
Job Type: libfuzzer_chrome_asan
Platform Id: linux

Crash Type: Timeout (exceeds 25 secs)
Crash Address: 
Crash State:
  pdf_font_fuzzer
  
Sanitizer: address (ASAN)

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

Issue filed automatically.

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

Note: This crash might not be reproducible with the provided testcase. That said, for the past 14 days we've been seeing this crash frequently. If you are unable to reproduce this, please try a speculative fix based on the crash stacktrace in the report. The fix can be verified by looking at the crash statistics in the report, a day after the fix is deployed. We will auto-close the bug if the crash is not seen for 14 days.
 
Cc: brajkumar@chromium.org
Components: Internals>Plugins>PDF
Labels: -Pri-1 M-66 Test-Predator-Wrong CF-NeedsTriage Pri-2
Unable to find actual suspect through code search and observing no CL under regression range, hence adding appropriate label and leaving it as untriaged.

Thanks!
Project Member

Comment 2 by ClusterFuzz, Jan 31 2018

Labels: OS-Mac
Owner: npm@chromium.org
Status: Unconfirmed (was: Untriaged)
npm@ Gentle ping! Could you please take a look in to this issue?

Thanks!

Comment 5 by npm@chromium.org, Feb 13 2018

Looks like the font manages to say it has tons of chars and FT_Load_Glyph is slow on them. This is a FreeType bug. I'll see if there is any indication of a recent regression.

Comment 6 by npm@chromium.org, Feb 13 2018

Cc: drott@chromium.org bunge...@chromium.org
This is slow even at FreeType commit c8d8e15803b0881809b3e15309795f8705471c32 so not a recent regression. I'm surprised FreeType allows magically obtaining lots of characters from such a small file, and then takes it's time loading them. +drott@ and +bungeman@ any ideas on whether this should be reported upstream?
Well, there's nothing wrong with a font stating that it has a big automatic char to glyph map and that all those chars point to the same glyph, then having that one glyph be quite complex. In this case that glyph has a quite interestingly constructed hinting program which probably goes into an infinite loop. This is the reason for teh FreeType compile time option TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES which makes infinite loops stop sooner. If re-building the FreeType used by the fuzzer with TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES set to something low makes this run a lot faster, then that would be the issue.

Comment 8 by npm@chromium.org, Feb 14 2018

You're right, lowering TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES to 10 makes the testcase run in under a second. However I'm unsure how to lower the value just for the fuzzer.

Comment 9 by drott@chromium.org, Feb 15 2018

I think there is some value in having the fuzzer hit loops or other forms of DOSing in the interpreter, perhaps we can lower the value but also crash or somehow tell the fuzzer that it has found something?

Comment 10 by npm@chromium.org, Feb 16 2018

Yes ideally we would somehow change the fuzzer to do something different in this case, the problem is that the FreeType used by the fuzzer is chromium's copy.

Comment 11 by npm@chromium.org, Feb 16 2018

Cc: npm@chromium.org
Owner: dsinclair@chromium.org
Status: Assigned (was: Unconfirmed)
Assigning all my PDF bugs to dsinclair@ for triaging. Will not be working on PDFium for a month.
Status: WontFix (was: Assigned)
We are closing all ooms and timeouts that are unreproducible. We won't be filing such bugs in future.

Sign in to add a comment