1#############################################################################
2# UBSan blacklist.
3
4#############################################################################
5# YASM does some funny things that UBsan doesn't like.
6# https://crbug.com/489901
7src:*/third_party/yasm/*
8
9#############################################################################
10# V8 gives too many false positives. Ignore them for now.
11src:*/v8/*
12
13#############################################################################
14# Ignore system libraries.
15src:*/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.
40src:*/base/numerics/saturated_arithmetic.h
41src:*/ppapi/shared_impl/id_assignment.h
42
43#############################################################################
44# ICU supressions. Mostly hash functions where integer overflow is OK.
45fun:*hashEntry*
46fun:*LocaleCacheKey*hashCode*
47fun:*google*protobuf*hash*
48fun:*(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# }
59src:*/net/disk_cache/blockfile/backend_impl.cc
60src:*/net/disk_cache/blockfile/entry_impl.cc
61src:*/third_party/icu/source/common/rbbi.cpp
62src:*/third_party/icu/source/common/rbbitblb.cpp
63src:*/third_party/icu/source/common/ucmndata.c
64
65#############################################################################
66# Delete in destructor on a this where this == nullptr
67fun:*re2*RegexpD*
68
69#############################################################################
70# Harmless float division by zero.
71fun:*RendererFrameManager*CullUnlockedFrames*
72
73#############################################################################
74# libc++ __tree and map are not UBSAN clean
75# https://llvm.org/bugs/show_bug.cgi?id=19302
76src:*/third_party/libc\+\+/trunk/include/__tree
77src:*/third_party/libc\+\+/trunk/include/map
78