@alex, forget the explanation in fd244c7b34 ))
I think this is now how it was intended:
* ${parameter-default} expands to default if parameter is not set
* -n checks if expansion is not empty
This reverts commit 43e03bc035.
The initial code was right:
(http://www.tldp.org/LDP/abs/html/parameter-substitution.html)
If $BUILD_ID is defined ${BUILD_ID+} evaluates to empty string.
If $BUILD_ID is not defined, it evaluates to null string.
-z of empty string is true
-z of null string is false
(welcome to bash).
@alex
I'm finding that with e.g.
python infra/helper.py build_fuzzers libpng
all builds fail for me with...
configure:3443: checking whether we are cross compiling
configure:3451: clang -o conftest -g -fsanitize=address -fsanitize-coverage=edge,indirect-calls,8bit-counters conftest.c >&5
configure:3455: $? = 0
configure:3462: ./conftest
==1014==LeakSanitizer has encountered a fatal error.
==1014==HINT: For debugging, try setting environment variable LSAN_OPTIONS=verbosity=1:log_threads=1
==1014==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc)
configure:3466: $? = 1
configure:3473: error: in `/src/libpng':
configure:3475: error: cannot run C compiled programs.
with the defaults of...
CC=clang
CXX=clang++
CFLAGS=-g -fsanitize=address -fsanitize-coverage=edge,indirect-calls,8bit-counters
CXXFLAGS=-g -fsanitize=address -fsanitize-coverage=edge,indirect-calls,8bit-counters -stdlib=libc++
but adding --cap-add SYS_PTRACE makes it work
Botan's fuzzers now have builtin maximums where necessary, instead of relying on
max len option. So the code to generate the .options files goes. Suggested by
@kcc in #150
Use corpus for the common formats, seems to help with initial coverage at least.
Disables Botan's pool allocator at build time, since it hides things from ASan.
The fuzzer driver already tries to disable it at runtime in LLVMFuzzerInitialize,
but the Clusterfuzz coverage report indicates that this init function is not
ever called, and the pool allocator ends up being used.
* Openssl: Enable more configure options
This enables all the options that are off by default but that we still
want to test.
* openssl: Enable undefined sanitizer.
* openssl: Add the security security contact as auto Cc
* openssl: bignum: limit to 2048 bytes