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

Issue 606726 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

PDFium broke libfuzzer builds

Project Member Reported by mmoroz@chromium.org, Apr 26 2016

Issue description

https://uberchromegw.corp.google.com/i/chromium.fyi/buildslaves/slave43-c1

FAILED: <..> ../../third_party/pdfium/xfa/fxfa/fm2js/xfa_lexer.cpp -o obj/third_party/pdfium/xfa/xfa_lexer.o
../../third_party/pdfium/xfa/fxfa/fm2js/xfa_lexer.cpp:542:16: error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs]
  va_start(ap, msg);
               ^
../../third_party/pdfium/xfa/fxfa/fm2js/xfa_lexer.cpp:538:40: note: parameter of type 'XFA_FM_ERRMSG' is declared here
void CXFA_FMLexer::Error(XFA_FM_ERRMSG msg, ...) {
                                       ^
1 error generated.
FAILED: <...> ../../third_party/pdfium/xfa/fxfa/fm2js/xfa_fmparse.cpp -o obj/third_party/pdfium/xfa/xfa_fmparse.o
../../third_party/pdfium/xfa/fxfa/fm2js/xfa_fmparse.cpp:43:16: error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs]
  va_start(ap, msg);
               ^
../../third_party/pdfium/xfa/fxfa/fm2js/xfa_fmparse.cpp:39:58: note: parameter of type 'XFA_FM_ERRMSG' is declared here
void CXFA_FMParse::Error(uint32_t lineNum, XFA_FM_ERRMSG msg, ...) {
                                                         ^
1 error generated.
ninja: build stopped: subcommand failed.
 

Comment 1 by mmoroz@chromium.org, Apr 26 2016

Labels: LibFuzzer-Infra

Comment 2 by mmoroz@chromium.org, Apr 26 2016

Labels: -Pri-3 Pri-2
Owner: dsinclair@chromium.org
Status: Started (was: Untriaged)
This is broken for Chrome XFA as well. Looks like a new Wvarargs got added to Clang (http://reviews.llvm.org/D19244)
Project Member

Comment 4 by bugdroid1@chromium.org, Apr 26 2016

The following revision refers to this bug:
  https://pdfium.googlesource.com/pdfium.git/+/76c53794b6202ec37f6dcace5f2ae86870e953b6

commit 76c53794b6202ec37f6dcace5f2ae86870e953b6
Author: dsinclair <dsinclair@chromium.org>
Date: Tue Apr 26 18:05:26 2016

Fix Wvarargs warning in XFA error code.

Chrome has enabled the -Wvarargs warning that was added to clang, this fails
with PDFium XFA builds due to two warnings:

../../xfa/fxfa/fm2js/xfa_lexer.cpp:539:16: error: passing an object that
undergoes default argument promotion to 'va_start' has undefined behavior
[-Werror,-Wvarargs]
  va_start(ap, msg);
               ^
../../xfa/fxfa/fm2js/xfa_lexer.cpp:535:40: note: parameter of type
'XFA_FM_ERRMSG' is declared here
void CXFA_FMLexer::Error(XFA_FM_ERRMSG msg, ...) {

The issue is that XFA_FM_ERRMSG is an enum and we violate the promotion rules
for passing the value to va_start.

I removed the enum and named the flags explicitly then pass in the string as
the argument.

BUG= chromium:606726 

Review URL: https://codereview.chromium.org/1921323002

[modify] https://crrev.com/76c53794b6202ec37f6dcace5f2ae86870e953b6/DEPS
[modify] https://crrev.com/76c53794b6202ec37f6dcace5f2ae86870e953b6/build_gyp/standalone.gypi
[modify] https://crrev.com/76c53794b6202ec37f6dcace5f2ae86870e953b6/build_overrides/v8.gni
[modify] https://crrev.com/76c53794b6202ec37f6dcace5f2ae86870e953b6/xfa/fxfa/fm2js/xfa_error.cpp
[modify] https://crrev.com/76c53794b6202ec37f6dcace5f2ae86870e953b6/xfa/fxfa/fm2js/xfa_error.h
[modify] https://crrev.com/76c53794b6202ec37f6dcace5f2ae86870e953b6/xfa/fxfa/fm2js/xfa_fmparse.cpp
[modify] https://crrev.com/76c53794b6202ec37f6dcace5f2ae86870e953b6/xfa/fxfa/fm2js/xfa_fmparse.h
[modify] https://crrev.com/76c53794b6202ec37f6dcace5f2ae86870e953b6/xfa/fxfa/fm2js/xfa_lexer.cpp
[modify] https://crrev.com/76c53794b6202ec37f6dcace5f2ae86870e953b6/xfa/fxfa/fm2js/xfa_lexer.h

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 26 2016

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

commit 4657b9b97e47bea0aed65dad19946a8ae11679ef
Author: dsinclair <dsinclair@chromium.org>
Date: Tue Apr 26 20:15:53 2016

Roll PDFium to 76c5379

BUG= chromium:606726 

Review URL: https://codereview.chromium.org/1918363002

Cr-Commit-Position: refs/heads/master@{#389869}

[modify] https://crrev.com/4657b9b97e47bea0aed65dad19946a8ae11679ef/DEPS

Status: Fixed (was: Started)

Sign in to add a comment