metzman (Jonathan Metzman)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 8 2016, 8:15 AM (119 w, 6 d)

Recent Activity

Fri, Sep 21

metzman planned changes to D52119: [SanitizerCoverage] Don't make sancov module constructor comdat.
In D52119#1237797, @rnk wrote:

I think we need to back up and think about what we're doing where and why.

If the application were fully statically linked, we wouldn't need to do anything in instrumentation code at all, we could just reference __start_*/__stop_* directly from the libfuzzer runtime, and that would contain all of sanitizer coverage data. The reason we have these module constructor calls is to deal with the case where the application is composed of multiple DSOs/DLLs. Each DSO will contain its own guards, counters, and pc arrays, and we can't arrange for them all to be contiguous.

Fri, Sep 21, 9:09 AM

Thu, Sep 20

metzman committed rL342698: [fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with….
[fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with…
Thu, Sep 20, 4:28 PM
metzman committed rCRT342698: [fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with….
[fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with…
Thu, Sep 20, 4:28 PM
metzman closed D51700: [fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp.
Thu, Sep 20, 4:28 PM
metzman updated the diff for D51700: [fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp.
  • Remove unused file.
Thu, Sep 20, 11:20 AM

Mon, Sep 17

metzman added a comment to D52119: [SanitizerCoverage] Don't make sancov module constructor comdat.

@rnk what do you think of this?
This change does cause many constructor calls to happen (thousands of times for some fuzzers) but there doesn't seem to be a problem with this as libFuzzer ignores the redundant calls.
Also, I'm not worried about a performance penalty from the redundant calls since they are cheap and only happen on program startup.

Mon, Sep 17, 11:14 AM
metzman added reviewers for D52119: [SanitizerCoverage] Don't make sancov module constructor comdat: morehouse, rnk.
Mon, Sep 17, 7:05 AM
metzman added reviewers for D51700: [fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp: rnk, morehouse.
Mon, Sep 17, 7:05 AM
metzman retitled D51700: [fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp from Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp to [fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp.
Mon, Sep 17, 7:05 AM

Sun, Sep 16

metzman added a comment to D51700: [fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp.

Should I remove FuzzerExtFunctionsDlsymWin.cpp?
I'm unsure about doing so because in Marcos's patch he didn't remove FuzzerExtFunctionsWeakAlias.cpp and because I may find how use it properly later, in which case removing it might make the history uglier?

Sun, Sep 16, 6:59 PM
metzman updated subscribers of D51700: [fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp.

@morehouse and @rnk: please take a look.

Sun, Sep 16, 6:49 PM
metzman updated the summary of D51700: [fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp.
Sun, Sep 16, 6:37 PM
metzman updated the summary of D51700: [fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp.
Sun, Sep 16, 6:36 PM
metzman updated subscribers of D52119: [SanitizerCoverage] Don't make sancov module constructor comdat.

@morehouse @rnk
Please take a look.
This patch allows libFuzzer targets to be compiled with /OPT:REF and adds a test to ensure this.

Sun, Sep 16, 3:14 PM
metzman retitled D52119: [SanitizerCoverage] Don't make sancov module constructor comdat from Don't make sancov module constructor comdat. to [SanitizerCoverage] Don't make sancov module constructor comdat.
Sun, Sep 16, 3:14 PM

Fri, Sep 14

metzman updated the diff for D52119: [SanitizerCoverage] Don't make sancov module constructor comdat.
  • fix spacing
Fri, Sep 14, 4:04 PM
metzman updated the diff for D52119: [SanitizerCoverage] Don't make sancov module constructor comdat.
  • Improve comments.
  • Add test to compiler-rt
Fri, Sep 14, 4:00 PM
metzman updated the summary of D52119: [SanitizerCoverage] Don't make sancov module constructor comdat.
Fri, Sep 14, 1:09 PM
metzman retitled D52119: [SanitizerCoverage] Don't make sancov module constructor comdat from Don't make sancov module constructor a comdat. Doing so causes the constructor to be stripped if the linker is told to strip unreferenced functions (/OPT:REF) to Don't make sancov module constructor comdat..
Fri, Sep 14, 1:09 PM
metzman created D52119: [SanitizerCoverage] Don't make sancov module constructor comdat.
Fri, Sep 14, 1:03 PM

Thu, Sep 6

metzman committed rCRT341632: [libfuzzer] Enable trace-malloc-unballanced.test on Windows..
[libfuzzer] Enable trace-malloc-unballanced.test on Windows.
Thu, Sep 6, 9:30 PM
metzman committed rL341632: [libfuzzer] Enable trace-malloc-unballanced.test on Windows..
[libfuzzer] Enable trace-malloc-unballanced.test on Windows.
Thu, Sep 6, 9:30 PM
metzman closed D51760: [libfuzzer] Enable trace-malloc-unballanced.test on Windows..
Thu, Sep 6, 9:29 PM
metzman updated the summary of D51760: [libfuzzer] Enable trace-malloc-unballanced.test on Windows..
Thu, Sep 6, 9:27 PM
metzman committed rL341622: [libfuzzer] Use cl driver mode for tests and enable another test on Windows.
[libfuzzer] Use cl driver mode for tests and enable another test on Windows
Thu, Sep 6, 6:12 PM
metzman committed rCRT341622: [libfuzzer] Use cl driver mode for tests and enable another test on Windows.
[libfuzzer] Use cl driver mode for tests and enable another test on Windows
Thu, Sep 6, 6:12 PM
metzman closed D51757: [libfuzzer] Use cl driver mode for tests and enable another test on Windows.
Thu, Sep 6, 6:12 PM
metzman retitled D51757: [libfuzzer] Use cl driver mode for tests and enable another test on Windows from [libfuzzer] Use cl driver mode for tests and enable another one on Windows to [libfuzzer] Use cl driver mode for tests and enable another test on Windows.
Thu, Sep 6, 6:11 PM
metzman added inline comments to D51757: [libfuzzer] Use cl driver mode for tests and enable another test on Windows.
Thu, Sep 6, 5:51 PM
metzman updated the diff for D51757: [libfuzzer] Use cl driver mode for tests and enable another test on Windows.
  • remove extra whitespace.
  • use target triple
Thu, Sep 6, 5:48 PM
metzman added a reviewer for D51760: [libfuzzer] Enable trace-malloc-unballanced.test on Windows.: Dor1s.

Max could you please take a look when you get a chance (no rush).

Thu, Sep 6, 5:20 PM
metzman updated the diff for D51760: [libfuzzer] Enable trace-malloc-unballanced.test on Windows..
  • Make comment more descriptive
Thu, Sep 6, 4:55 PM
metzman created D51760: [libfuzzer] Enable trace-malloc-unballanced.test on Windows..
Thu, Sep 6, 4:55 PM
metzman retitled D51757: [libfuzzer] Use cl driver mode for tests and enable another test on Windows from [libfuzzer] Use cl driver mode for tests and enable another one on Windws to [libfuzzer] Use cl driver mode for tests and enable another one on Windows.
Thu, Sep 6, 4:19 PM
metzman added inline comments to D51757: [libfuzzer] Use cl driver mode for tests and enable another test on Windows.
Thu, Sep 6, 4:06 PM
metzman added a reviewer for D51757: [libfuzzer] Use cl driver mode for tests and enable another test on Windows: morehouse.

Matt, please take a look when you get a chance (no rush).

Thu, Sep 6, 4:06 PM
metzman updated the diff for D51757: [libfuzzer] Use cl driver mode for tests and enable another test on Windows.
  • undo accidental change
Thu, Sep 6, 3:53 PM
metzman updated the diff for D51757: [libfuzzer] Use cl driver mode for tests and enable another test on Windows.
  • Remove /Z7 flag.
Thu, Sep 6, 3:49 PM
metzman retitled D51757: [libfuzzer] Use cl driver mode for tests and enable another test on Windows from [libfuzzer] Use correct compilation flags for tests and enable another one on Windws to [libfuzzer] Use cl driver mode for tests and enable another one on Windws.
Thu, Sep 6, 3:48 PM
metzman retitled D51757: [libfuzzer] Use cl driver mode for tests and enable another test on Windows from [libfuzzer] Use compilation flags for tests and enable another one on Windws to [libfuzzer] Use correct compilation flags for tests and enable another one on Windws.
Thu, Sep 6, 3:36 PM
metzman created D51757: [libfuzzer] Use cl driver mode for tests and enable another test on Windows.
Thu, Sep 6, 3:35 PM
metzman committed rL341569: [libfuzzer] Correct typo in comment (test commit)..
[libfuzzer] Correct typo in comment (test commit).
Thu, Sep 6, 10:51 AM
metzman committed rCRT341569: [libfuzzer] Correct typo in comment (test commit)..
[libfuzzer] Correct typo in comment (test commit).
Thu, Sep 6, 10:51 AM
metzman closed D51739: [libfuzzer] Correct typo in comment (test commit)..
Thu, Sep 6, 10:51 AM
metzman added a reviewer for D51739: [libfuzzer] Correct typo in comment (test commit).: Dor1s.
Thu, Sep 6, 10:38 AM
metzman created D51739: [libfuzzer] Correct typo in comment (test commit)..
Thu, Sep 6, 10:37 AM
metzman added a comment to D51735: [libfuzzer] Fix fuzzer-oom.test on windows and reenable it..

I wonder if there is any trick in lit to resolve this .exe issue.

Thu, Sep 6, 9:43 AM
metzman added reviewers for D51735: [libfuzzer] Fix fuzzer-oom.test on windows and reenable it.: Dor1s, morehouse.

Please take a look.
Another issue with the file extension.
These issues aren't trivial to figure out, I wonder if all tests should compile binaries with exe extensions so problems aren't accidentally introduced.

Thu, Sep 6, 9:04 AM
metzman created D51735: [libfuzzer] Fix fuzzer-oom.test on windows and reenable it..
Thu, Sep 6, 8:57 AM

Wed, Sep 5

metzman added reviewers for D51712: [libfuzzer] Temporarily disable unittests failing on Windows.: morehouse, Dor1s.

Please take a look.

Wed, Sep 5, 7:14 PM
metzman created D51712: [libfuzzer] Temporarily disable unittests failing on Windows..
Wed, Sep 5, 7:08 PM
metzman added a comment to D51692: [libfuzzer] Replace memmem with strstr..

In my newest diff, we enter the if-body if argv0 was set by LLVMFuzzerInitialize and Data begins with "fuzz", which should be easy enough for most any test to pass.

Wed, Sep 5, 1:59 PM
metzman updated the diff for D51692: [libfuzzer] Replace memmem with strstr..
  • use different comparison and check pointer is not null
Wed, Sep 5, 1:56 PM
metzman added a comment to D51692: [libfuzzer] Replace memmem with strstr..

My first diff did an exact match on part of argv[0], doing the entire thing was too difficult: https://reviews.llvm.org/D51692?vs=on&id=164071&whitespace=ignore-most#toc
Do you think that solution is better than testing if argv0 was set?

Wed, Sep 5, 1:02 PM
metzman added a comment to D51692: [libfuzzer] Replace memmem with strstr..

Sorry, Matt you had a better understanding of what my patch does than I did.
You are right that the if-body is taken when the lengths are the same but the string is not different.
In any case though, I think testing if we can match strings is unnecessary anyway right? Can we just test that argv0 was set?

Wed, Sep 5, 1:00 PM
metzman added a comment to D51692: [libfuzzer] Replace memmem with strstr..

That patch broke the behavior of this test. Looks like we used to print "BINGO" when the input matched the binary name. Now we print "BINGO" when the input size matches but the names do not.

Wed, Sep 5, 12:54 PM
metzman added a comment to D51692: [libfuzzer] Replace memmem with strstr..

Actually, I think I know why.
It looks like exact match was too difficult for LF (was lit not always used for tests?).
This is why a search function was first added by @george.karpenkov
See
https://github.com/llvm-mirror/llvm/commit/6795f26af554ad58aaca056db03657653b2e4e60#diff-1034b931b86661aee0b11db45658a8b5

Wed, Sep 5, 12:29 PM
metzman added a comment to D51692: [libfuzzer] Replace memmem with strstr..

Maybe memcmp would be cleaner here.

Wed, Sep 5, 12:23 PM
metzman created D51700: [fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp.
Wed, Sep 5, 11:58 AM
metzman added a reviewer for D51692: [libfuzzer] Replace memmem with strstr.: morehouse.

@morehouse
Please take a look.
This patch replaces use of memmem with strstr so that the two tests that use this code can compile on Windows (they still fail because LLVMFuzzerInitialize isn't working, but I have a fix for that, patch on the way).

Wed, Sep 5, 11:03 AM
metzman retitled D51692: [libfuzzer] Replace memmem with strstr. from [libfuzzer] Replace memmem with memcmp. to [libfuzzer] Replace memmem with strstr..
Wed, Sep 5, 10:57 AM
metzman updated the diff for D51692: [libfuzzer] Replace memmem with strstr..
  • remove comment
Wed, Sep 5, 10:56 AM
metzman updated the diff for D51692: [libfuzzer] Replace memmem with strstr..

Replace memmem with strstr

Wed, Sep 5, 10:56 AM
metzman created D51692: [libfuzzer] Replace memmem with strstr..
Wed, Sep 5, 10:32 AM
metzman updated subscribers of D51685: Enable symbolize-deadlock.test on Windows.

cc @morehouse

Wed, Sep 5, 7:51 AM
metzman created D51685: Enable symbolize-deadlock.test on Windows.
Wed, Sep 5, 7:38 AM

Tue, Sep 4

metzman abandoned D51503: [libFuzzer] Optimize Basename.
Tue, Sep 4, 10:11 AM

Mon, Sep 3

metzman updated the summary of D51549: [libFuzzer] Enable tests on Windows.
Mon, Sep 3, 4:38 PM
metzman updated the diff for D51549: [libFuzzer] Enable tests on Windows.
  • nfc: fix comments.
  • Disable print_unstable_stats
Mon, Sep 3, 4:37 PM

Fri, Aug 31

metzman updated the diff for D51549: [libFuzzer] Enable tests on Windows.
  • fix comment
Fri, Aug 31, 2:40 PM
metzman updated the summary of D51549: [libFuzzer] Enable tests on Windows.
Fri, Aug 31, 12:56 PM
metzman added a reviewer for D51549: [libFuzzer] Enable tests on Windows: morehouse.

Please take a look Matt.
This enables libfuzzer tests on windows, gets most of them to work, and disables about 20 tests as well (some temporarily, some permanently).

Fri, Aug 31, 12:55 PM
metzman updated the diff for D51549: [libFuzzer] Enable tests on Windows.
  • update comments
  • fix typo
Fri, Aug 31, 12:52 PM
metzman updated the summary of D51549: [libFuzzer] Enable tests on Windows.
Fri, Aug 31, 12:50 PM
metzman updated the diff for D51549: [libFuzzer] Enable tests on Windows.

update comments

Fri, Aug 31, 10:42 AM
metzman created D51549: [libFuzzer] Enable tests on Windows.
Fri, Aug 31, 10:40 AM

Thu, Aug 30

metzman created D51503: [libFuzzer] Optimize Basename.
Thu, Aug 30, 12:21 PM
metzman updated the diff for D51022: [libFuzzer] Port to Windows.
  • Port libFuzzer to Windows
Thu, Aug 30, 8:11 AM
metzman reopened D51022: [libFuzzer] Port to Windows.
Thu, Aug 30, 8:11 AM

Wed, Aug 29

metzman accepted D51455: [libFuzzer] Remove mutation stats and weighted mutation selection..

LGTM

Wed, Aug 29, 1:01 PM
metzman updated the diff for D51022: [libFuzzer] Port to Windows.

Trivial NFC to use local variable instead of accessing attribute twice.

Wed, Aug 29, 8:16 AM
metzman updated the diff for D51022: [libFuzzer] Port to Windows.

Fix failing assertions by using CreateGEP instead of CreateAdd to add to a pointer.

Wed, Aug 29, 8:11 AM

Tue, Aug 28

metzman updated the diff for D51022: [libFuzzer] Port to Windows.

Improve comments.

Tue, Aug 28, 7:08 AM

Mon, Aug 27

metzman updated the diff for D51022: [libFuzzer] Port to Windows.

Improve comment

Mon, Aug 27, 6:18 PM
metzman updated the diff for D51022: [libFuzzer] Port to Windows.
Mon, Aug 27, 6:17 PM
metzman added a comment to D51022: [libFuzzer] Port to Windows.

We will need to disable failing tests for Windows. libFuzzer does run as part of check-all now.

Mon, Aug 27, 6:04 PM
metzman updated the diff for D51022: [libFuzzer] Port to Windows.

Disable libFuzzer tests on Windows.

Mon, Aug 27, 6:02 PM
metzman added a comment to D51022: [libFuzzer] Port to Windows.

Thank you @rnk and @morehouse for your reviews.

Mon, Aug 27, 5:10 PM
metzman updated the diff for D51022: [libFuzzer] Port to Windows.

Merge SCOVP section with .rdata

Mon, Aug 27, 3:18 PM

Aug 24 2018

metzman updated the diff for D51022: [libFuzzer] Port to Windows.
Aug 24 2018, 10:36 AM
metzman updated the diff for D51022: [libFuzzer] Port to Windows.

run clang format.

Aug 24 2018, 9:41 AM
metzman added inline comments to D51022: [libFuzzer] Port to Windows.
Aug 24 2018, 9:28 AM
metzman updated the diff for D51022: [libFuzzer] Port to Windows.

Merge guard and counter sections with .data section.
Also add better comments.

Aug 24 2018, 9:12 AM

Aug 23 2018

metzman retitled D51022: [libFuzzer] Port to Windows from Port libFuzzer to Windows to [libFuzzer] Port to Windows.
Aug 23 2018, 4:58 PM
metzman added inline comments to D51022: [libFuzzer] Port to Windows.
Aug 23 2018, 10:36 AM
metzman updated the diff for D51022: [libFuzzer] Port to Windows.

Undo unnecessary change to unittests.

Aug 23 2018, 9:47 AM
metzman updated the diff for D51022: [libFuzzer] Port to Windows.

Fix BaseName to handle '/' and '\' on Windows.

Aug 23 2018, 8:27 AM

Aug 22 2018

metzman added a comment to D51022: [libFuzzer] Port to Windows.

@rnk thank you for the feedback.
I will fix the issues you have raised shortly, but I have some questions on the feedback you left.

Aug 22 2018, 5:32 PM
metzman added a comment to D51022: [libFuzzer] Port to Windows.

Reid could you please take a look.
This patch gets libFuzzer working on Windows.
Most functionality seems to work, a few features are not yet supported and the tests don't yet work. I plan on fixing these issues soon.

Aug 22 2018, 3:25 PM
metzman added inline comments to D51022: [libFuzzer] Port to Windows.
Aug 22 2018, 2:26 PM