Skip to content

Build structure for OSS-Fuzz integration - #34761

Closed
DavidKorczynski wants to merge 5 commits into
nodejs:masterfrom
DavidKorczynski:master
Closed

Build structure for OSS-Fuzz integration#34761
DavidKorczynski wants to merge 5 commits into
nodejs:masterfrom
DavidKorczynski:master

Conversation

@DavidKorczynski

@DavidKorczynskiDavidKorczynski commented Aug 13, 2020

Copy link
Copy Markdown
Contributor
Checklist

This PR sets up integration with OSS-Fuzz continuous fuzzing.

Fixes: #33724
Also fixes the integration described here google/oss-fuzz#3860 by @bnoordhuis

The idea is that we can avoid having a complicated build script on the OSS-Fuzz repository:
https://github.com/google/oss-fuzz/blob/master/projects/nodejs/build.sh

The code has been tested with oss-fuzz and simplifies things a lot, as well as make it much easier to write more fuzzers. Once this PR is merged I have several fuzzers that will be added, but I figured doing it step-by-step makes most sense.

The basic idea is to add a --with-ossfuzz flag in configure.py that is then used by the fuzzer targets inside node.gyp.

@nodejs-github-botnodejs-github-bot added the build Issues and PRs related to build files or the CI. label Aug 13, 2020
Comment threadnode.gyp Outdated
Comment threadtest/fuzzers/fuzz_url.cc Outdated
Comment threadconfigure.py Outdated
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@aduh95

Copy link
Copy Markdown
Contributor

The commit messages don't follow guidelines, do they? That should look something like:

build: setup for OSS-Fuzz integration
Refs: https://github.com/google /oss-fuzz/pull/3860
Fixes: https://github.com/nodejs /node/issues/33724

I've added spaces in the URL to workaround GitHub automatic linkage, please ignore that.

@mmarchini

Copy link
Copy Markdown
Contributor

@aduh95 we usually fix it ourselves before landing for first time contributors

@TrottTrott added the semver-minor PRs that contain new features and should be released in the next minor version. label Aug 15, 2020
@Trott

Copy link
Copy Markdown
Member

build: setup for OSS-Fuzz integration

Refs: https://github.com/google /oss-fuzz/pull/3860
Fixes: https://github.com/nodejs /node/issues/33724

Well, while we're at it, for whoever does land this: First word after build: should be an imperative verb, so maybe build: add build flag for OSS-Fuzz integration or something like that?

Trott pushed a commit that referenced this pull request Aug 15, 2020
Refs: google/oss-fuzz#3860Fixes: #33724
PR-URL: #34761Fixes: #33724
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rich Trott <rtrott@gmail.com>
@Trott

Copy link
Copy Markdown
Member

Well, while we're at it, for whoever does land this

Oh, look, it was me.

Landed in 375b859

@DavidKorczynski Welcome and thanks for the contribution! 🎉

@aduh95 Thanks for the draft commit message. I don't know why, but the need to formulate a commit message sometimes makes me procrastinate on landing something, so being able to copy/paste what you had done took away that excuse for inaction on my part. 🎉

@TrottTrott closed this Aug 15, 2020
MylesBorins pushed a commit that referenced this pull request Aug 17, 2020
Refs: google/oss-fuzz#3860Fixes: #33724
PR-URL: #34761Fixes: #33724
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rich Trott <rtrott@gmail.com>
DavidKorczynski added a commit to DavidKorczynski/node that referenced this pull request Aug 19, 2020
@danielleadamsdanielleadams mentioned this pull request Aug 20, 2020
BethGriggs pushed a commit that referenced this pull request Aug 20, 2020
Refs: google/oss-fuzz#3860Fixes: #33724
PR-URL: #34761Fixes: #33724
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rich Trott <rtrott@gmail.com>
addaleax pushed a commit that referenced this pull request Sep 22, 2020
Refs: google/oss-fuzz#3860Fixes: #33724
PR-URL: #34761Fixes: #33724
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rich Trott <rtrott@gmail.com>
codebytere added a commit that referenced this pull request Sep 28, 2020
Notable changes:
async_hooks:
* add AsyncResource.bind utility (James M Snell) (#34574)
buffer:
* also alias BigUInt methods (Anna Henningsen) (#34960)
* alias UInt ➡️ Uint in buffer methods (Anna Henningsen) (#34729)
build:
* add build flag for OSS-Fuzz integration (davkor) (#34761)
cli:
* add alias for report-directory to make it consistent (Ash Cripps) (#33587)
crypto:
* allow KeyObjects in postMessage (Tobias Nießen) (#33360)
* add randomInt function (Oli Lalonde) (#34600)
deps:
* upgrade to libuv 1.39.0 (Colin Ihrig) (#34915)
dgram:
* add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) (#14500)
* allow typed arrays in .send() (Sarat Addepalli) (#22413)
doc:
* add basic embedding example documentation (Anna Henningsen) (#30467)
embedding:
* make Stop() stop Workers (Anna Henningsen) (#32531)
* provide hook for custom process.exit() behaviour (Anna Henningsen) (#32531)
fs:
* implement lutimes (Maël Nison) (#33399)
http:
* return this from IncomingMessage#destroy() (Colin Ihrig) (#32789)
* expose host and protocol on ClientRequest (wenningplus) [#33803](#33803)
http2:
* return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) (#33994)
* do not modify explicity set date headers (Pranshu Srivastava) (#33160)
* n-api**:
* support type-tagging objects (Gabriel Schulhof) (#28237)
* provide asynchronous cleanup hooks (Anna Henningsen) (#34572)
perf_hooks:
* add idleTime and event loop util (Trevor Norris) (#34938)
timers:
* allow timers to be used as primitives (Denys Otrishko) [#34017](#34017)
tls:
* make 'createSecureContext' honor more options (Mateusz Krawczuk) (#33974)
worker:
* add public method for marking objects as untransferable (Anna Henningsen) (#33979)
* emit `'messagerror'` events for failed deserialization (Anna Henningsen) (#33772)
* allow passing JS wrapper objects via postMessage (Anna Henningsen) (#33772)
* allow transferring/cloning generic BaseObjects (Anna Henningsen) (#33772)
* add option to track unmanaged file descriptors (Anna Henningsen) (#34303)
* add stack size resource limit option (Anna Henningsen) (#33085)
* make FileHandle transferable (Anna Henningsen) (#33772)
zlib:
* add `maxOutputLength` option (unknown) (#33516)
PR-URL: TODO
@codebyterecodebytere mentioned this pull request Sep 28, 2020
codebytere added a commit that referenced this pull request Oct 1, 2020
Notable changes:
async_hooks:
* add AsyncResource.bind utility (James M Snell) (#34574)
buffer:
* also alias BigUInt methods (Anna Henningsen) (#34960)
* alias UInt ➡️ Uint in buffer methods (Anna Henningsen) (#34729)
build:
* add build flag for OSS-Fuzz integration (davkor) (#34761)
cli:
* add alias for report-directory to make it consistent (Ash Cripps) (#33587)
crypto:
* allow KeyObjects in postMessage (Tobias Nießen) (#33360)
* add randomInt function (Oli Lalonde) (#34600)
deps:
* upgrade to libuv 1.39.0 (Colin Ihrig) (#34915)
dgram:
* add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) (#14500)
* allow typed arrays in .send() (Sarat Addepalli) (#22413)
doc:
* add basic embedding example documentation (Anna Henningsen) (#30467)
embedding:
* make Stop() stop Workers (Anna Henningsen) (#32531)
* provide hook for custom process.exit() behaviour (Anna Henningsen) (#32531)
fs:
* implement lutimes (Maël Nison) (#33399)
http:
* return this from IncomingMessage#destroy() (Colin Ihrig) (#32789)
* expose host and protocol on ClientRequest (wenningplus) [#33803](#33803)
http2:
* return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) (#33994)
* do not modify explicity set date headers (Pranshu Srivastava) (#33160)
* n-api**:
* support type-tagging objects (Gabriel Schulhof) (#28237)
* provide asynchronous cleanup hooks (Anna Henningsen) (#34572)
perf_hooks:
* add idleTime and event loop util (Trevor Norris) (#34938)
timers:
* allow timers to be used as primitives (Denys Otrishko) [#34017](#34017)
tls:
* make 'createSecureContext' honor more options (Mateusz Krawczuk) (#33974)
worker:
* add public method for marking objects as untransferable (Anna Henningsen) (#33979)
* emit `'messagerror'` events for failed deserialization (Anna Henningsen) (#33772)
* allow passing JS wrapper objects via postMessage (Anna Henningsen) (#33772)
* allow transferring/cloning generic BaseObjects (Anna Henningsen) (#33772)
* add option to track unmanaged file descriptors (Anna Henningsen) (#34303)
* add stack size resource limit option (Anna Henningsen) (#33085)
* make FileHandle transferable (Anna Henningsen) (#33772)
zlib:
* add `maxOutputLength` option (unknown) (#33516)
PR-URL: TODO
codebytere added a commit that referenced this pull request Oct 4, 2020
Notable changes:
assert:
* (SEMVER-MINOR) port common.mustCall() to assert (ConorDavenport) #31982
async_hooks:
* (SEMVER-MINOR) add AsyncResource.bind utility (James M Snell) #34574
buffer:
* (SEMVER-MINOR) also alias BigUInt methods (Anna Henningsen) #34960
* (SEMVER-MINOR) alias UInt ➡️ Uint in buffer methods (Anna Henningsen) #34729
build:
* (SEMVER-MINOR) add build flag for OSS-Fuzz integration (davkor) #34761
cli:
* (SEMVER-MINOR) add alias for report-directory to make it consistent (Ash Cripps) #33587
crypto:
* (SEMVER-MINOR) allow KeyObjects in postMessage (Tobias Nießen) #33360
* (SEMVER-MINOR) add randomInt function (Oli Lalonde) #34600
deps:
* upgrade to libuv 1.39.0 (Colin Ihrig) #34915
* upgrade npm to 6.14.7 (claudiahdz) #34468
* upgrade to libuv 1.38.1 (Colin Ihrig) #34187
dgram:
* (SEMVER-MINOR) add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) #14500
* (SEMVER-MINOR) allow typed arrays in .send() (Sarat Addepalli) #22413
doc:
* (SEMVER-MINOR) Add maxTotalSockets option to agent constructor (rickyes) #33617
* (SEMVER-MINOR) add basic embedding example documentation (Anna Henningsen) #30467
* add Ricky Zhou to collaborators (rickyes) #34676
* add release key for Ruy Adorno (Ruy Adorno) #34628
* add DerekNonGeneric to collaborators (Derek Lewis) #34602
* add AshCripps to collaborators (Ash Cripps) #34494
* add HarshithaKP to collaborators (Harshitha K P) #34417
* add rexagod to collaborators (Pranshu Srivastava) #34457
* add release key for Richard Lau (Richard Lau) #34397
* add danielleadams to collaborators (Danielle Adams) #34360
* add sxa as collaborator (Stewart X Addison) #34338
* add ruyadorno to collaborators (Ruy Adorno) #34297
* (SEMVER-MAJOR) deprecate process.umask() with no arguments (Colin Ihrig) #32499
embedding:
* (SEMVER-MINOR) make Stop() stop Workers (Anna Henningsen) #32531
* (SEMVER-MINOR) provide hook for custom process.exit() behaviour (Anna Henningsen) #32531
fs:
* (SEMVER-MINOR) implement lutimes (Maël Nison) #33399
http:
* (SEMVER-MINOR) add maxTotalSockets to agent class (rickyes) #33617
* (SEMVER-MINOR) return this from IncomingMessage#destroy() (Colin Ihrig) #32789
* (SEMVER-MINOR) expose host and protocol on ClientRequest (wenningplus) #33803
http2:
* (SEMVER-MINOR) return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) #33994
* (SEMVER-MINOR) do not modify explicity set date headers (Pranshu Srivastava) #33160
module:
* (SEMVER-MINOR) named exports for CJS via static analysis (Guy Bedford) #35249
* (SEMVER-MINOR) exports pattern support (Guy Bedford) #34718
* (SEMVER-MINOR) package "imports" field (Guy Bedford) #34117
* (SEMVER-MINOR) deprecate module.parent (Antoine du HAMEL) #32217
n-api:
* (SEMVER-MINOR) create N-API version 7 (Gabriel Schulhof) #35199
* (SEMVER-MINOR) support type-tagging objects (Gabriel Schulhof) #28237
n-api,src:
* (SEMVER-MINOR) provide asynchronous cleanup hooks (Anna Henningsen) #34572
perf_hooks:
* (SEMVER-MINOR) add idleTime and event loop util (Trevor Norris) #34938
timers:
* (SEMVER-MINOR) allow timers to be used as primitives (Denys Otrishko) #34017
tls:
* (SEMVER-MINOR) make 'createSecureContext' honor more options (Mateusz Krawczuk) #33974
worker:
* (SEMVER-MINOR) add public method for marking objects as untransferable (Anna Henningsen) #33979
* (SEMVER-MINOR) emit `'messagerror'` events for failed deserialization (Anna Henningsen) #33772
* (SEMVER-MINOR) allow passing JS wrapper objects via postMessage (Anna Henningsen) #33772
* (SEMVER-MINOR) allow transferring/cloning generic BaseObjects (Anna Henningsen) #33772
* (SEMVER-MINOR) add option to track unmanaged file descriptors (Anna Henningsen) #34303
* (SEMVER-MINOR) add stack size resource limit option (Anna Henningsen) #33085
worker,fs:
* (SEMVER-MINOR) make FileHandle transferable (Anna Henningsen) #33772
zlib:
* (SEMVER-MINOR) add `maxOutputLength` option (unknown) #33516
* switch to lazy init for zlib streams (Andrey Pechkurov) #34048
PR-URL: TODO
BethGriggs pushed a commit that referenced this pull request Oct 14, 2020
Refs: #34761
Refs: #33724
PR-URL: #34844
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
MylesBorins pushed a commit that referenced this pull request Nov 3, 2020
Refs: #34761
Refs: #33724
PR-URL: #34844
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
MylesBorins pushed a commit that referenced this pull request Nov 16, 2020
Refs: #34761
Refs: #33724
PR-URL: #34844
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
joesepi pushed a commit to joesepi/node that referenced this pull request Jan 8, 2021
Notable changes:
assert:
* (SEMVER-MINOR) port common.mustCall() to assert (ConorDavenport) nodejs#31982
async_hooks:
* (SEMVER-MINOR) add AsyncResource.bind utility (James M Snell) nodejs#34574
buffer:
* (SEMVER-MINOR) also alias BigUInt methods (Anna Henningsen) nodejs#34960
* (SEMVER-MINOR) alias UInt ➡️ Uint in buffer methods (Anna Henningsen) nodejs#34729
build:
* (SEMVER-MINOR) add build flag for OSS-Fuzz integration (davkor) nodejs#34761
cli:
* (SEMVER-MINOR) add alias for report-directory to make it consistent (Ash Cripps) nodejs#33587
crypto:
* (SEMVER-MINOR) allow KeyObjects in postMessage (Tobias Nießen) nodejs#33360
* (SEMVER-MINOR) add randomInt function (Oli Lalonde) nodejs#34600
deps:
* upgrade to libuv 1.39.0 (Colin Ihrig) nodejs#34915
* upgrade npm to 6.14.7 (claudiahdz) nodejs#34468
* upgrade to libuv 1.38.1 (Colin Ihrig) nodejs#34187
dgram:
* (SEMVER-MINOR) add IPv6 scope id suffix to received udp6 dgrams (Pekka Nikander) nodejs#14500
* (SEMVER-MINOR) allow typed arrays in .send() (Sarat Addepalli) nodejs#22413
doc:
* (SEMVER-MINOR) Add maxTotalSockets option to agent constructor (rickyes) nodejs#33617
* (SEMVER-MINOR) add basic embedding example documentation (Anna Henningsen) nodejs#30467
* add Ricky Zhou to collaborators (rickyes) nodejs#34676
* add release key for Ruy Adorno (Ruy Adorno) nodejs#34628
* add DerekNonGeneric to collaborators (Derek Lewis) nodejs#34602
* add AshCripps to collaborators (Ash Cripps) nodejs#34494
* add HarshithaKP to collaborators (Harshitha K P) nodejs#34417
* add rexagod to collaborators (Pranshu Srivastava) nodejs#34457
* add release key for Richard Lau (Richard Lau) nodejs#34397
* add danielleadams to collaborators (Danielle Adams) nodejs#34360
* add sxa as collaborator (Stewart X Addison) nodejs#34338
* add ruyadorno to collaborators (Ruy Adorno) nodejs#34297
* (SEMVER-MAJOR) deprecate process.umask() with no arguments (Colin Ihrig) nodejs#32499
embedding:
* (SEMVER-MINOR) make Stop() stop Workers (Anna Henningsen) nodejs#32531
* (SEMVER-MINOR) provide hook for custom process.exit() behaviour (Anna Henningsen) nodejs#32531
fs:
* (SEMVER-MINOR) implement lutimes (Maël Nison) nodejs#33399
http:
* (SEMVER-MINOR) add maxTotalSockets to agent class (rickyes) nodejs#33617
* (SEMVER-MINOR) return this from IncomingMessage#destroy() (Colin Ihrig) nodejs#32789
* (SEMVER-MINOR) expose host and protocol on ClientRequest (wenningplus) nodejs#33803
http2:
* (SEMVER-MINOR) return this for Http2ServerRequest#setTimeout (Pranshu Srivastava) nodejs#33994
* (SEMVER-MINOR) do not modify explicity set date headers (Pranshu Srivastava) nodejs#33160
module:
* (SEMVER-MINOR) named exports for CJS via static analysis (Guy Bedford) nodejs#35249
* (SEMVER-MINOR) exports pattern support (Guy Bedford) nodejs#34718
* (SEMVER-MINOR) package "imports" field (Guy Bedford) nodejs#34117
* (SEMVER-MINOR) deprecate module.parent (Antoine du HAMEL) nodejs#32217
n-api:
* (SEMVER-MINOR) create N-API version 7 (Gabriel Schulhof) nodejs#35199
* (SEMVER-MINOR) support type-tagging objects (Gabriel Schulhof) nodejs#28237
n-api,src:
* (SEMVER-MINOR) provide asynchronous cleanup hooks (Anna Henningsen) nodejs#34572
perf_hooks:
* (SEMVER-MINOR) add idleTime and event loop util (Trevor Norris) nodejs#34938
timers:
* (SEMVER-MINOR) allow timers to be used as primitives (Denys Otrishko) nodejs#34017
tls:
* (SEMVER-MINOR) make 'createSecureContext' honor more options (Mateusz Krawczuk) nodejs#33974
worker:
* (SEMVER-MINOR) add public method for marking objects as untransferable (Anna Henningsen) nodejs#33979
* (SEMVER-MINOR) emit `'messagerror'` events for failed deserialization (Anna Henningsen) nodejs#33772
* (SEMVER-MINOR) allow passing JS wrapper objects via postMessage (Anna Henningsen) nodejs#33772
* (SEMVER-MINOR) allow transferring/cloning generic BaseObjects (Anna Henningsen) nodejs#33772
* (SEMVER-MINOR) add option to track unmanaged file descriptors (Anna Henningsen) nodejs#34303
* (SEMVER-MINOR) add stack size resource limit option (Anna Henningsen) nodejs#33085
worker,fs:
* (SEMVER-MINOR) make FileHandle transferable (Anna Henningsen) nodejs#33772
zlib:
* (SEMVER-MINOR) add `maxOutputLength` option (unknown) nodejs#33516
* switch to lazy init for zlib streams (Andrey Pechkurov) nodejs#34048
PR-URL: nodejs#35401
joesepi pushed a commit to joesepi/node that referenced this pull request Jan 8, 2021
Refs: nodejs#34761
Refs: nodejs#33724
PR-URL: nodejs#34844
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

buildIssues and PRs related to build files or the CI.semver-minorPRs that contain new features and should be released in the next minor version.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improvements of OSS-Fuzz integration

7 participants

@DavidKorczynski@nodejs-github-bot@aduh95@mmarchini@Trott@bnoordhuis@richardlau