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

Issue 861746 link

Starred by 0 users

Issue metadata

Status: Verified
Owner:
Closed: Aug 3
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug

Blocking:
issue 769578



Sign in to add a comment

libprotobuf-mutator-using fuzzer targets end up compiling libprotobuf with RTTI switched on

Project Member Reported by vabr@chromium.org, Jul 9

Issue description

Repro steps:

(1) Patch in https://chromium-review.googlesource.com/c/chromium/src/+/1120088/5
(2) Add the attached patch on top of it
(3) Compile the target password_generator_proto_fuzzer
    (e.g.,
    nice ninja -C out/libfuzzer -j2500 -l20 password_generator_proto_fuzzer,
    with gn args being
      use_libfuzzer = true
      is_asan = true
      is_debug = false
      enable_nacl = false
    )

Observe that protobuf's arena.h does not see GOOGLE_PROTOBUF_NO_RTTI set, despite third_party/protobuf:protobuf_config setting it and being pulled into the fuzzer target as a public config. (More details in [1].)



[1] https://chromium-review.googlesource.com/c/chromium/src/+/1120088/#message-5007471a46a34d5c0d09b74bf374d188223b5373
 
patch
966 bytes View Download
Cc: -metzman@chromium.org
Labels: -Pri-3 Pri-1
Owner: metzman@chromium.org
I plan on making some changes to the way the plugin should be used.
Once I do this, I will let you know so the patch can land without having to worry about rtti (the patch may need to be updated to use the plugin in the new manner).
Project Member

Comment 2 by bugdroid1@chromium.org, Jul 20

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

commit 2f46bdba272c67d22c59f712949b7fdd71fefb2e
Author: Jonathan Metzman <metzman@chromium.org>
Date: Fri Jul 20 23:36:57 2018

[LPM] Improve process for using the plugin for LITE_RUNTIME.

Change protobuf_library to compile everything for the full protobuf runtime
when use_libfuzzer=true is passed to GN.


Bug: 860750, 861746 
Change-Id: I43d4c51f686895fc8aafb8bdae368815aee4ace2
Reviewed-on: https://chromium-review.googlesource.com/1128249
Reviewed-by: Martin Barbella <mbarbella@chromium.org>
Commit-Queue: Jonathan Metzman <metzman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577035}
[modify] https://crrev.com/2f46bdba272c67d22c59f712949b7fdd71fefb2e/testing/libfuzzer/libprotobuf-mutator.md
[modify] https://crrev.com/2f46bdba272c67d22c59f712949b7fdd71fefb2e/third_party/libprotobuf-mutator/BUILD.gn
[add] https://crrev.com/2f46bdba272c67d22c59f712949b7fdd71fefb2e/third_party/libprotobuf-mutator/fuzzable_proto_library.gni

Project Member

Comment 3 by bugdroid1@chromium.org, Jul 20

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

commit 4cd2d05b89de51b8513289b83f5bd8f4eb28c280
Author: Jonathan Metzman <metzman@chromium.org>
Date: Fri Jul 20 23:39:49 2018

Revert "[LPM] Improve process for using the plugin for LITE_RUNTIME."

This reverts commit 2f46bdba272c67d22c59f712949b7fdd71fefb2e.

Reason for revert: Commit message incorrect.

Original change's description:
> [LPM] Improve process for using the plugin for LITE_RUNTIME.
> 
> Change protobuf_library to compile everything for the full protobuf runtime
> when use_libfuzzer=true is passed to GN.
> 
> 
> Bug: 860750, 861746 
> Change-Id: I43d4c51f686895fc8aafb8bdae368815aee4ace2
> Reviewed-on: https://chromium-review.googlesource.com/1128249
> Reviewed-by: Martin Barbella <mbarbella@chromium.org>
> Commit-Queue: Jonathan Metzman <metzman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#577035}

TBR=thakis@chromium.org,mbarbella@chromium.org,metzman@chromium.org

Change-Id: I5bbe8ff3da58383b2b47ebc650906eb90f622cdf
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 860750,  861746 
Reviewed-on: https://chromium-review.googlesource.com/1145204
Reviewed-by: Jonathan Metzman <metzman@chromium.org>
Commit-Queue: Jonathan Metzman <metzman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577039}
[modify] https://crrev.com/4cd2d05b89de51b8513289b83f5bd8f4eb28c280/testing/libfuzzer/libprotobuf-mutator.md
[modify] https://crrev.com/4cd2d05b89de51b8513289b83f5bd8f4eb28c280/third_party/libprotobuf-mutator/BUILD.gn
[delete] https://crrev.com/e3971799c07a4cd37daf7fb98578cb2137556648/third_party/libprotobuf-mutator/fuzzable_proto_library.gni

Project Member

Comment 4 by bugdroid1@chromium.org, Jul 21

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

commit 23e2bcb7bd0a3123f52c056965d42821ba03f44c
Author: Jonathan Metzman <metzman@chromium.org>
Date: Sat Jul 21 00:01:10 2018

Reland "[LPM] Improve process for using the plugin for LITE_RUNTIME."

Add fuzzable_proto_library to wrap proto_libraries used in production
and by LPM.

This is a reland of 2f46bdba272c67d22c59f712949b7fdd71fefb2e

Original change's description:
> [LPM] Improve process for using the plugin for LITE_RUNTIME.
>
>
>
> Bug: 860750, 861746 
> Change-Id: I43d4c51f686895fc8aafb8bdae368815aee4ace2
> Reviewed-on: https://chromium-review.googlesource.com/1128249
> Reviewed-by: Martin Barbella <mbarbella@chromium.org>
> Commit-Queue: Jonathan Metzman <metzman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#577035}

Bug: 860750,  861746 
Change-Id: I03bae3970b7fd333268a35aa738029ff7549705a
Reviewed-on: https://chromium-review.googlesource.com/1145205
Reviewed-by: Martin Barbella <mbarbella@chromium.org>
Commit-Queue: Jonathan Metzman <metzman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577043}
[modify] https://crrev.com/23e2bcb7bd0a3123f52c056965d42821ba03f44c/testing/libfuzzer/libprotobuf-mutator.md
[modify] https://crrev.com/23e2bcb7bd0a3123f52c056965d42821ba03f44c/third_party/libprotobuf-mutator/BUILD.gn
[add] https://crrev.com/23e2bcb7bd0a3123f52c056965d42821ba03f44c/third_party/libprotobuf-mutator/fuzzable_proto_library.gni

Status: Assigned (was: Available)
Blocking: 769578
Status: Verified (was: Assigned)
I believe this issue has been solved.

Sign in to add a comment