mirror of
https://github.com/mirror/wget.git
synced 2025-01-05 09:50:27 +08:00
a4402120ad
* Makefile.am: Add fuzz/ to SUBDIRS * cfg.mk: Fix 'make syntax-check' * configure.ac: Add --enable-fuzzing * fuzz/Makefile.am: New file * fuzz/README.md: New file * fuzz/fuzzer.h: New file * fuzz/get_all_corpora: New file * fuzz/get_ossfuzz_corpora: New file * fuzz/glob_crash.c: New file * fuzz/main.c: New file * fuzz/run-afl.sh: New file * fuzz/run-clang.sh: New file * fuzz/view-coverage.sh: New file * fuzz/wget_options_fuzzer.c: New file * fuzz/wget_options_fuzzer.dict: New file * src/init.c (cleanup): Free more resources * src/main.c (init_switches): Initialize only once, (print_usage): Don't print if TESTING is defined * src/utils.h: Include wget.h
33 lines
937 B
C
33 lines
937 B
C
/*
|
|
* Created 19.10.2017 by Tim Rühsen
|
|
*
|
|
* Call glob() using data from fuzzer crash file
|
|
*
|
|
* Build and execute with instrumented gnulib (amend -I paths as needed):
|
|
*
|
|
* clang build (spills out WRITE heap buffer overflow)
|
|
* export CC=clang-6.0
|
|
* export CFLAGS="-O1 -g -fno-omit-frame-pointer -fsanitize=address -fsanitize-address-use-after-scope"
|
|
* $CC $CFLAGS -I.. -I../lib glob_crash.c -o glob_crash ../lib/.libs/libgnu.a
|
|
* ./glob_crash
|
|
*
|
|
* gcc build (spills out READ heap buffer overflow):
|
|
* export CC=gcc
|
|
* export CFLAGS="-O1 -g -fno-omit-frame-pointer -fsanitize=address -fsanitize-address-use-after-scope"
|
|
* $CC $CFLAGS -I.. -I../lib glob_crash.c -o glob_crash ../lib/.libs/libgnu.a
|
|
* ./glob_crash
|
|
*/
|
|
|
|
#include <glob.h>
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
static unsigned char data[] = "1e";
|
|
|
|
glob_t pglob;
|
|
if (glob(data, GLOB_TILDE|GLOB_ONLYDIR|GLOB_NOCHECK, NULL, &pglob) == 0)
|
|
globfree(&pglob);
|
|
|
|
return 0;
|
|
}
|