Index: tools/ubsan_vptr/blacklist.txt |
diff --git a/tools/ubsan_vptr/blacklist.txt b/tools/ubsan_vptr/blacklist.txt |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ba55278ea1eabc92418f3569df73c5ae257739d2 |
--- /dev/null |
+++ b/tools/ubsan_vptr/blacklist.txt |
@@ -0,0 +1,83 @@ |
+############################################################################# |
+# Identical layouts. |
+# If base and derived classes have identifical memory layouts (i.e., the same |
+# object size) and both have no virtual functions, we blacklist them as there |
+# would be not much security implications. |
+ |
+fun:*LifecycleNotifier*addObserver* |
+fun:*LifecycleNotifier*removeObserver* |
+fun:*toWebInputElement* |
+type:*base*MessageLoopForIO* |
+type:*BlockRefType* |
+type:*SkAutoTUnref* |
+type:*WDResult* |
+type:*WebCore*ExecutionContext* |
+type:*blink*WebInputElement* |
+type:*blink*WebFormControlElement* |
+ |
+# Avoid identical layout cases for 86 different classes in InspectorTypeBuilder, |
+# all of which are guarded using COMPILER_ASSERT on the object size. Two more |
+# types are also blacklisted due to the template class (JSONArray <-> Array<T>). |
+ |
+src:*InspectorTypeBuilder.h* |
+type:*WebCore*TypeBuilder* |
+type:*WebCore*JSONArray* |
+ |
+############################################################################# |
+# Base class's constructor accesses a derived class's member. |
+ |
+fun:*DoublyLinkedListNode* |
+type:*content*WebUIExtensionData* |
+type:*v8*internal*CompilationInfo* |
+ |
+# RenderFrameObserverTracker<T>::RenderFrameObserverTracker() |
+fun:_ZN7content*RenderFrameObserverTracker*EC2EPKNS*RenderFrameE |
+ |
+# RenderFrameObserverTracker<T>::RenderFrameObserverTracker() |
+fun:_ZN7content*RenderViewObserverTracker*EC2EPKNS*RenderViewE |
+ |
+############################################################################# |
+# Base class's destructor accesses a derived class. |
+ |
+fun:*DatabaseContext*contextDestroyed* |
+ |
+############################################################################# |
+# static_cast into itself in the constructor. |
+ |
+fun:*RefCountedGarbageCollected*makeKeepAlive* |
+ |
+############################################################################# |
+# Accessing data in destructurors where the class has virtual inheritances. |
+ |
+type:*content*RenderWidgetHost* |
+ |
+# Mangled name for content::RenderViewHostImpl::~RenderViewHostImpl() |
+fun:_ZN7content18RenderViewHostImplD2Ev |
+ |
+############################################################################# |
+# 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 |
+ |
+############################################################################# |
+# Avoid link errors. |
+# Ubsan vptr needs typeinfo on the target class, but it looks like typeinfo is |
+# not avaiable if the class is not exported. For now, simply blacklisted to |
+# avoid linke errors; e.g., undefined reference to 'typeinfo for [CLASS_NAME]'. |
aarya
2014/07/18 17:25:21
s/linke/link
|
+ |
+# obj/ppapi/libppapi_proxy.a(obj/ppapi/proxy/ppapi_proxy.proxy_channel.o):../../ppapi/proxy/proxy_channel.cc:__unnamed_53: error: undefined reference to 'typeinfo for IPC::TestSink' |
+src:*/ppapi/proxy/proxy_channel.cc |
+ |
+# obj/chrome/libbrowser.a(obj/chrome/browser/net/browser.predictor.o):../../chrome/browser/net/predictor.cc:__unnamed_577: error: undefined reference to 'typeinfo for ProxyAdvisor' |
+src:*/chrome/browser/net/predictor.cc |
+ |
+# obj/third_party/pdfium/libfpdfapi.a(obj/third_party/pdfium/core/src/fpdfapi/fpdf_render/fpdfapi.fpdf_render_text.o):../../third_party/pdfium/core/src/fpdfapi/fpdf_render/:__unnamed_360: error: undefined reference to 'typeinfo for CPDF_InlineImages' |
+src:*/third_party/pdfium/core/src/fpdfapi/fpdf_render/fpdf_render_text.cpp |
+ |
+# obj/third_party/libwebm/libwebm.a(obj/third_party/libwebm/source/libwebm.mkvmuxer.o)(.data.rel..L__unnamed_2+0x18): error: undefined reference to 'typeinfo for mkvparser::IMkvReader' |
+src:*/third_party/libwebm/source/mkvmuxer.cpp |