summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/tools_webrtc/ubsan
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/tools_webrtc/ubsan')
-rw-r--r--third_party/libwebrtc/tools_webrtc/ubsan/suppressions.txt26
-rw-r--r--third_party/libwebrtc/tools_webrtc/ubsan/vptr_suppressions.txt27
2 files changed, 53 insertions, 0 deletions
diff --git a/third_party/libwebrtc/tools_webrtc/ubsan/suppressions.txt b/third_party/libwebrtc/tools_webrtc/ubsan/suppressions.txt
new file mode 100644
index 0000000000..2ece795570
--- /dev/null
+++ b/third_party/libwebrtc/tools_webrtc/ubsan/suppressions.txt
@@ -0,0 +1,26 @@
+#############################################################################
+# UBSan ignorelist.
+#
+# This is a WebRTC-specific replacement of Chromium's ignorelist.txt.
+# Only exceptions for third party libraries go here. WebRTC's code should use
+# the RTC_NO_SANITIZE macro. Please think twice before adding new exceptions.
+
+#############################################################################
+# OpenH264 triggers some errors that are out of our control.
+src:*/third_party/ffmpeg/libavcodec/*
+src:*/third_party/openh264/*
+
+# TODO(bugs.webrtc.org/11110).
+# Remove those once upstream code has been cleaned.
+src:*/third_party/abseil-cpp/absl/debugging/*
+src:*/third_party/libvpx/source/libvpx/vp8/*
+
+#############################################################################
+# Ignore system libraries.
+src:*/usr/*
+
+#############################################################################
+[alignment]
+# Libaom and libsrtp are doing unaligned memory access.
+src:*/third_party/libaom/source/libaom/*
+src:*/third_party/libsrtp/srtp/srtp.c
diff --git a/third_party/libwebrtc/tools_webrtc/ubsan/vptr_suppressions.txt b/third_party/libwebrtc/tools_webrtc/ubsan/vptr_suppressions.txt
new file mode 100644
index 0000000000..617ba88f98
--- /dev/null
+++ b/third_party/libwebrtc/tools_webrtc/ubsan/vptr_suppressions.txt
@@ -0,0 +1,27 @@
+#############################################################################
+# UBSan vptr ignorelist.
+# Function and type based blacklisting use a mangled name, and it is especially
+# tricky to represent C++ types. For now, any possible changes by name manglings
+# are simply represented as wildcard expressions of regexp, and thus it might be
+# over-blacklisted.
+#
+# Please think twice before you add or remove these rules.
+#
+# This is a stripped down copy of Chromium's vptr_blacklist.txt, to enable
+# adding WebRTC-specific ignorelist entries.
+
+#############################################################################
+# Using raw pointer values.
+#
+# A raw pointer value (16) is used to infer the field offset by
+# GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET.
+
+src:*/third_party/protobuf/src/google/protobuf/compiler/plugin.pb.cc
+src:*/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc
+src:*/third_party/protobuf/src/google/protobuf/descriptor.pb.cc
+
+#############################################################################
+# UBsan goes into an infinite recursion when __dynamic_cast instrumented with
+# "vptr". See crbug.com/609786.
+
+src:*/third_party/libc\+\+abi/trunk/src/private_typeinfo.cpp