mirror of https://github.com/google/oss-fuzz.git
u-root: init project (#8911)
Following the addition of some fuzzing tests ([#1](https://github.com/u-root/u-root/pull/2528), [#2](https://github.com/u-root/u-root/pull/2535), [#3](https://github.com/u-root/u-root/pull/2536)) in the u-root project and [preparations for this integration](https://github.com/u-root/u-root/pull/2543). You can check out its [website](https://u-root.org/) for more info on the project. Signed-off-by: Fabian Wienand <fabian.wienand@9elements.com> Signed-off-by: Fabian Wienand <fabian.wienand@9elements.com>
This commit is contained in:
parent
3f14b420ef
commit
d149cddfad
|
@ -0,0 +1,20 @@
|
|||
# Copyright 2022 Google LLC
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
FROM gcr.io/oss-fuzz-base/base-builder-go
|
||||
RUN git clone --depth 1 https://github.com/u-root/u-root
|
||||
WORKDIR u-root
|
||||
COPY build.sh $SRC/
|
|
@ -0,0 +1,80 @@
|
|||
#!/bin/bash -eu
|
||||
# Copyright 2022 Google LLC
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
# cpio pkg
|
||||
cd $SRC/u-root/pkg/cpio
|
||||
go mod init cpio
|
||||
go mod tidy
|
||||
go install github.com/AdamKorcz/go-118-fuzz-build@latest
|
||||
go get github.com/AdamKorcz/go-118-fuzz-build/testingtypes
|
||||
go get github.com/AdamKorcz/go-118-fuzz-build/utils
|
||||
|
||||
cp $SRC/u-root/pkg/cpio/testdata/fuzz/*.dict $SRC/u-root/pkg/cpio/testdata/fuzz/*.options $OUT
|
||||
|
||||
## FuzzReadWriteNewc
|
||||
zip -j $OUT/fuzz_read_write_newc_seed_corpus.zip $SRC/u-root/pkg/cpio/testdata/fuzz/corpora/*
|
||||
compile_native_go_fuzzer $SRC/u-root/pkg/cpio FuzzReadWriteNewc fuzz_read_write_newc
|
||||
|
||||
## FuzzWriteReadInMemArchive
|
||||
compile_native_go_fuzzer $SRC/u-root/pkg/cpio FuzzWriteReadInMemArchive fuzz_write_read_in_mem_archive
|
||||
|
||||
# grub pkg
|
||||
cd $SRC/u-root/pkg/boot/grub
|
||||
go mod init grub
|
||||
go mod tidy
|
||||
go install github.com/AdamKorcz/go-118-fuzz-build@latest
|
||||
go get github.com/AdamKorcz/go-118-fuzz-build/testingtypes
|
||||
go get github.com/AdamKorcz/go-118-fuzz-build/utils
|
||||
|
||||
cp $SRC/u-root/pkg/boot/grub/testdata/fuzz/*.dict $SRC/u-root/pkg/boot/grub/testdata/fuzz/*.options $OUT
|
||||
|
||||
## FuzzParseEnvFile
|
||||
compile_native_go_fuzzer $SRC/u-root/pkg/boot/grub FuzzParseEnvFile fuzz_parse_env_file
|
||||
|
||||
## FuzzParseGrubConfig
|
||||
find $SRC/u-root/pkg/boot/grub/testdata_new -name "grub.cfg" -exec zip $OUT/fuzz_parse_grub_config_seed_corpus.zip {} +
|
||||
compile_native_go_fuzzer $SRC/u-root/pkg/boot/grub FuzzParseGrubConfig fuzz_parse_grub_config
|
||||
|
||||
# localboot pkg
|
||||
cd $SRC/u-root/cmds/boot/localboot
|
||||
go mod init localboot
|
||||
go mod tidy
|
||||
go install github.com/AdamKorcz/go-118-fuzz-build@latest
|
||||
go get github.com/AdamKorcz/go-118-fuzz-build/testingtypes
|
||||
go get github.com/AdamKorcz/go-118-fuzz-build/utils
|
||||
|
||||
cp $SRC/u-root/pkg/boot/grub/testdata/fuzz/*.dict $SRC/u-root/cmds/boot/localboot/testdata/fuzz/*.options $OUT
|
||||
|
||||
## FuzzParseGrubCfg
|
||||
find $SRC/u-root/pkg/boot/grub/testdata_new -name "grub.cfg" -exec zip $OUT/fuzz_parse_grub_cfg_seed_corpus.zip {} +
|
||||
|
||||
compile_native_go_fuzzer $SRC/u-root/cmds/boot/localboot FuzzParseGrubCfg fuzz_parse_grub_cmd_cfg
|
||||
|
||||
# syslinux pkg
|
||||
cd $SRC/u-root/pkg/boot/syslinux
|
||||
go mod init syslinux
|
||||
go mod tidy
|
||||
go install github.com/AdamKorcz/go-118-fuzz-build@latest
|
||||
go get github.com/AdamKorcz/go-118-fuzz-build/testingtypes
|
||||
go get github.com/AdamKorcz/go-118-fuzz-build/utils
|
||||
|
||||
cp $SRC/u-root/pkg/boot/syslinux/testdata/fuzz/*.dict $SRC/u-root/pkg/boot/syslinux/testdata/fuzz/*.options $OUT
|
||||
|
||||
## FuzzParseSyslinuxConfig
|
||||
find $SRC/u-root/pkg/boot/syslinux/testdata -name "isolinux.cfg" -exec zip $OUT/fuzz_parse_syslinux_config_seed_corpus.zip {} +
|
||||
|
||||
compile_native_go_fuzzer $SRC/u-root/pkg/boot/syslinux FuzzParseSyslinuxConfig fuzz_parse_syslinux_config
|
|
@ -0,0 +1,12 @@
|
|||
homepage: "https://u-root.org/"
|
||||
main_repo: "https://github.com/u-root/u-root.git"
|
||||
primary_contact: "rminnich@gmail.com"
|
||||
auto_ccs:
|
||||
- "fabian.wienand@9elements.com"
|
||||
language: go
|
||||
architectures:
|
||||
- x86_64
|
||||
fuzzing_engines:
|
||||
- libfuzzer
|
||||
sanitizers:
|
||||
- address
|
Loading…
Reference in New Issue