Skip to content

-fno-rtti incompatible with UBSAN fuzzing setup #189

@pitrou

Description

@pitrou

We have Apache Arrow set up on OSS-Fuzz. Arrow can optionally use Snappy to read Parquet files, but unfortunately Snappy cannot be enabled on some OSS-Fuzz builders because of incompatible compiler options.

See attempted CI run here:
https://github.com/google/oss-fuzz/actions/runs/10306444556/job/28529568675

and in particular these errors:

[1/5] Building CXX object CMakeFiles/snappy.dir/snappy-sinksource.cc.o
FAILED: CMakeFiles/snappy.dir/snappy-sinksource.cc.o 
/usr/local/bin/clang++ -DHAVE_CONFIG_H -I/work/snappy_ep-prefix/src/snappy_ep -O1 -fno-omit-frame-pointer -gline-tables-only -Wno-error=enum-constexpr-conversion -Wno-error=incompatible-function-pointer-types -Wno-error=int-conversion -Wno-error=deprecated-declarations -Wno-error=implicit-function-declaration -Wno-error=implicit-int -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=array-bounds,bool,builtin,enum,function,integer-divide-by-zero,null,object-size,return,returns-nonnull-attribute,shift,signed-integer-overflow,unsigned-integer-overflow,unreachable,vla-bound,vptr -fno-sanitize-recover=array-bounds,bool,builtin,enum,function,integer-divide-by-zero,null,object-size,return,returns-nonnull-attribute,shift,signed-integer-overflow,unreachable,vla-bound,vptr -fsanitize=fuzzer-no-link -stdlib=libc++ -Qunused-arguments -fcolor-diagnostics -fPIC -Wall -Wextra -Werror -fno-exceptions -fno-rtti -O2 -g -DNDEBUG -ggdb   -Wno-error -std=gnu++17 -MD -MT CMakeFiles/snappy.dir/snappy-sinksource.cc.o -MF CMakeFiles/snappy.dir/snappy-sinksource.cc.o.d -o CMakeFiles/snappy.dir/snappy-sinksource.cc.o -c /work/snappy_ep-prefix/src/snappy_ep/snappy-sinksource.cc
clang++: error: invalid argument '-fsanitize=vptr' not allowed with '-fno-rtti'

[etc.]

It would be nice if Snappy didn't force -fno-rtti unconditionally.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions