Revert "[M120 Migration]Fix for crash during chrome exit"
[platform/framework/web/chromium-efl.git] / tools / ubsan / vptr_ignorelist.txt
1 #############################################################################
2 # UBSan vptr ignorelist.
3 # Function and type based ignorelisting use a mangled name, and it is especially
4 # tricky to represent C++ types. For now, any possible changes by name manglings
5 # are simply represented as wildcard expressions of regexp, and thus it might be
6 # over-ignorelisted.
7
8 #############################################################################
9 # Identical layouts.
10 # If base and derived classes have identifical memory layouts (i.e., the same
11 # object size) and both have no virtual functions, we ignorelist them as there
12 # would be not much security implications.
13
14 fun:*LifecycleNotifier*addObserver*
15 fun:*LifecycleNotifier*removeObserver*
16 fun:*toWebInputElement*
17 type:*base*MessageLoopForIO*
18 type:*BlockRefType*
19 type:*SkAutoTUnref*
20 type:*WDResult*
21 type:*ExecutionContext*
22 type:*WebInputElement*
23 type:*WebFormControlElement*
24
25 # Avoid identical layout cases for 86 different classes in InspectorTypeBuilder,
26 # all of which are guarded using COMPILER_ASSERT on the object size. Two more
27 # types are also ignorelisted due to the template class (JSONArray <-> Array<T>).
28
29 src:*InspectorTypeBuilder.h*
30 type:*TypeBuilder*
31 type:*JSONArray*
32
33 #############################################################################
34 # Base class's constructor accesses a derived class's member.
35
36 fun:*DoublyLinkedListNode*
37 type:*content*WebUIExtensionData*
38
39 # RenderFrameObserverTracker<T>::RenderFrameObserverTracker()
40 fun:*content*RenderFrameObserverTracker*RenderFrame*
41
42 # RenderViewObserverTracker<T>::RenderViewObserverTracker()
43 fun:*content*RenderViewObserverTracker*RenderView*
44
45 #############################################################################
46 # Base class's destructor accesses a derived class.
47
48 fun:*DatabaseContext*contextDestroyed*
49
50 # FIXME: Cannot handle template function LifecycleObserver<>::SetContext,
51 # so exclude source file for now.
52 src:*lifecycle_observer.h*
53
54 #############################################################################
55 # static_cast into itself in the constructor.
56
57 fun:*RefCountedGarbageCollected*makeKeepAlive*
58 fun:*ThreadSafeRefCountedGarbageCollected*makeKeepAlive*
59
60 #############################################################################
61 # Accessing data in destructors where the class has virtual inheritances.
62
63 type:*content*RenderWidgetHost*
64
65 # Match mangled name for X::~X().
66 fun:*content*RenderThreadImplD*
67 fun:*content*RenderViewHostImplD*
68 fun:*content*UtilityThreadImplD*
69
70 #############################################################################
71 # Using raw pointer values.
72 #
73 # A raw pointer value (16) is used to infer the field offset by
74 # GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET.
75
76 src:*/third_party/protobuf/src/google/protobuf/compiler/plugin.pb.cc
77 src:*/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc
78 src:*/third_party/protobuf/src/google/protobuf/descriptor.pb.cc
79
80 #############################################################################
81 # Avoid link errors.
82 # Ubsan vptr needs typeinfo on the target class, but it looks like typeinfo is
83 # not avaiable if the class is not exported.  For now, simply ignorelisted to
84 # avoid link errors; e.g., undefined reference to 'typeinfo for [CLASS_NAME]'.
85
86 # 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'
87 src:*/ppapi/proxy/proxy_channel.cc
88
89 # 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'
90 src:*/chrome/browser/net/predictor.cc
91
92 # 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'
93 src:*/third_party/libwebm/source/mkvmuxer.cpp
94
95 #############################################################################
96 # LLVM is not UBSan vptr clean.
97 src:*third_party/swiftshader/third_party/LLVM*
98
99 #############################################################################
100 # UBSan yields false positives in SwiftShader's libEGL when objects created in
101 # libGLESv2 from classes derived from libEGL base classes are used within
102 # libEGL. UBSan wrongly detects that the libGLESv2 classes are not derived from
103 # libEGL classes because libEGL doesn't know about libGLESv2 classes.
104 # See crbug.com/722349, crbug.com/736624.
105 type:*egl*Context*
106 type:*egl*Surface*
107 type:*gl*Surface*
108 type:*gl*Object*
109 type:*sw*FrameBuffer*
110
111 #############################################################################
112 # UBSan seems to be emit false positives when virtual base classes are
113 # involved, see e.g. crbug.com/448102.
114
115 type:*v8*internal*OFStream*
116
117 #############################################################################
118 # UBsan is unable to handle static_cast<A*>(nullptr) and crashes on SIGSEGV.
119 #
120
121 # static_cast<StartPageService*> in StartPageServiceFactory::GetForProfile.
122 type:*StartPageService*
123
124 # Remove once function attribute level ignorelisting is implemented.
125 # See crbug.com/476063.
126 fun:*forbidGCDuringConstruction*