1 ############################################################################# 2 # UBSan blacklist. 3 4 ############################################################################# 5 # YASM does some funny things that UBsan doesn't like. 6 # https://crbug.com/489901 7 src:*/third_party/yasm/* 8 9 ############################################################################# 10 # V8 gives too many false positives. Ignore them for now. 11 src:*/v8/* 12 13 ############################################################################# 14 # Ignore system libraries. 15 src:*/usr/* 16 17 ############################################################################# 18 # V8 UBsan supressions, commented out for now since we are ignorning v8 19 # completely. 20 # fun:*v8*internal*FastD2I* 21 # fun:*v8*internal*ComputeIntegerHash* 22 # fun:*v8*internal*ComputeLongHash* 23 # fun:*v8*internal*ComputePointerHash* 24 # src:*/v8/src/base/bits.cc 25 # src:*/v8/src/base/functional.cc 26 # Undefined behaviour (integer overflow) is expected but ignored in this 27 # function. 28 # fun:*JsonParser*ParseJsonNumber* 29 30 # Runtime numeric functions. 31 # src:*/v8/src/runtime/runtime-numbers.cc 32 33 # Shifts of negative numbers 34 # fun:*v8*internal*HPositionInfo*TagPosition* 35 # fun:*v8*internal*Range*Shl* 36 # fun:*v8*internal*RelocInfoWriter*WriteTaggedData* 37 38 ############################################################################# 39 # Undefined arithmetic that can be safely ignored. 40 src:*/base/numerics/saturated_arithmetic.h 41 src:*/ppapi/shared_impl/id_assignment.h 42 43 ############################################################################# 44 # ICU supressions. Mostly hash functions where integer overflow is OK. 45 fun:*hashEntry* 46 fun:*LocaleCacheKey*hashCode* 47 fun:*google*protobuf*hash* 48 fun:*(hash|Hash)* 49 50 ############################################################################# 51 # Bounds blacklist. 52 # Array at the end of struct pattern: 53 # Maybe UBSan itself can be improved here? 54 # e.g. 55 # struct blah { 56 # int a; 57 # char foo[2]; // not actually 2 58 # } 59 src:*/net/disk_cache/blockfile/backend_impl.cc 60 src:*/net/disk_cache/blockfile/entry_impl.cc 61 src:*/third_party/icu/source/common/rbbi.cpp 62 src:*/third_party/icu/source/common/rbbitblb.cpp 63 src:*/third_party/icu/source/common/ucmndata.c 64 65 ############################################################################# 66 # Delete in destructor on a this where this == nullptr 67 fun:*re2*RegexpD* 68 69 ############################################################################# 70 # Harmless float division by zero. 71 fun:*RendererFrameManager*CullUnlockedFrames* 72 73 ############################################################################# 74 # libc++ __tree and map are not UBSAN clean 75 # https://llvm.org/bugs/show_bug.cgi?id=19302 76 src:*/third_party/libc\+\+/trunk/include/__tree 77 src:*/third_party/libc\+\+/trunk/include/map 78