Home | History | Annotate | Download | only in ubsan
      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