OLD | NEW |
| (Empty) |
1 # There are four kinds of suppressions in this file. | |
2 # | |
3 # 1. Third party stuff we have no control over. | |
4 # | |
5 # 2. Bugs involving Wine. | |
6 # | |
7 # 3. Chromium specific errors that are intentional unit test errors, | |
8 # or stuff that is somehow a false positive in our own code, | |
9 # or stuff that is so trivial it's not worth fixing. | |
10 # | |
11 # 4. Suppressions for real chromium bugs that are not yet fixed. | |
12 # These should all be in chromium's bug tracking system (but a few aren't yet). | |
13 # Periodically we should sweep this file and the bug tracker clean by | |
14 # running overnight and removing outdated bugs/suppressions. | |
15 #----------------------------------------------------------------------- | |
16 | |
17 # 1. Third party stuff we have no control over. | |
18 | |
19 # System bugs that aren't Wine's fault. | |
20 { | |
21 suppress_nss_leak | |
22 Memcheck:Leak | |
23 fun:malloc | |
24 obj:* | |
25 fun:__nss_database_lookup | |
26 } | |
27 { | |
28 bogus_Xcursor_Leak | |
29 Memcheck:Leak | |
30 fun:malloc | |
31 obj:/usr/lib/libXcursor.so.1.0.2 | |
32 } | |
33 { | |
34 todo_suppress_libasound_leak | |
35 Memcheck:Leak | |
36 ... | |
37 obj:/usr/lib*/libasound.so.2.0.0 | |
38 } | |
39 { | |
40 todo_suppress_libfontconfig_leak | |
41 Memcheck:Leak | |
42 fun:malloc | |
43 obj:/usr/lib*/libfontconfig.so.1.* | |
44 } | |
45 # visual C++ | |
46 { | |
47 todo_visual_c_chkstk_2 | |
48 Memcheck:Addr4 | |
49 fun:_chkstk | |
50 } | |
51 { | |
52 # Same leak exists in src/tools/valgrind/memcheck/suppressions.txt | |
53 # with a mangled stack signature. | |
54 Uninitialized value in deflate | |
55 Memcheck:Cond | |
56 ... | |
57 fun:MOZ_Z_deflate | |
58 } | |
59 | |
60 # 2. Bugs involving Wine | |
61 | |
62 # These three happen if valgrind doesn't notice and handle speculative | |
63 # implementations of strchr/strlen/strcat properly. | |
64 { | |
65 visual_c_ignore_strchr | |
66 Memcheck:Cond | |
67 fun:strchr | |
68 } | |
69 { | |
70 visual_c_ignore_strlen | |
71 Memcheck:Cond | |
72 fun:strlen | |
73 } | |
74 { | |
75 visual_c_ignore_strcat | |
76 Memcheck:Cond | |
77 fun:strcat | |
78 } | |
79 | |
80 # Naming convention for Wine suppressions: | |
81 # # If we think it's solid: | |
82 # # suppress_wine_dirname__functionname[_moreifneeded] | |
83 # # If we aren't sure, change suppress to todo | |
84 | |
85 # thread_detach() should clean this up?? | |
86 { | |
87 todo_wine_dlls_winex11drv__x11drv_init_thread_data_main | |
88 Memcheck:Leak | |
89 ... | |
90 fun:RtlAllocateHeap | |
91 fun:x11drv_init_thread_data | |
92 } | |
93 { | |
94 todo_wine_dlls_winex11drv_XOpenDisplay | |
95 Memcheck:Leak | |
96 fun:malloc | |
97 ... | |
98 fun:xcb_connect | |
99 fun:_XConnectXCB | |
100 fun:XOpenDisplay | |
101 } | |
102 { | |
103 todo_wine_dlls_winex11drv_XOpenDisplay_2 | |
104 Memcheck:Leak | |
105 fun:malloc | |
106 ... | |
107 fun:xcb_get_extension_data | |
108 fun:xcb_prefetch_maximum_request_length | |
109 fun:xcb_get_maximum_request_length | |
110 fun:XOpenDisplay | |
111 fun:DllMain | |
112 } | |
113 { | |
114 todo_suppress_alloc_module_leak | |
115 Memcheck:Leak | |
116 ... | |
117 fun:RtlAllocateHeap | |
118 fun:RtlCreateUnicodeString | |
119 fun:alloc_module | |
120 } | |
121 { | |
122 todo_suppress_dlopen_leak2 | |
123 Memcheck:Leak | |
124 fun:*alloc | |
125 ... | |
126 fun:dl_open_worker | |
127 fun:_dl_catch_error | |
128 fun:_dl_open | |
129 fun:dlopen_doit | |
130 fun:_dl_catch_error | |
131 } | |
132 # ntdll/loader.c explicitly avoids freeing when .exe's exit at the moment | |
133 { | |
134 todo_suppress_wine_alloc_module_leak | |
135 Memcheck:Leak | |
136 ... | |
137 fun:RtlAllocateHeap | |
138 fun:RtlCreateUnicodeString | |
139 fun:alloc_module | |
140 } | |
141 # shell32 isn't freeing its imagelist cache on unload? | |
142 { | |
143 wine_bug_20544 | |
144 Memcheck:Leak | |
145 fun:malloc | |
146 fun:XInitExtension | |
147 fun:XextAddDisplay | |
148 fun:* | |
149 fun:XShmQueryVersion | |
150 fun:X11DRV_CreateDIBSection | |
151 fun:CreateDIBSection | |
152 fun:ImageList_CreateImage | |
153 fun:ImageList_Create | |
154 fun:SIC_Initialize | |
155 fun:DllMain | |
156 } | |
157 # winmm isn't freeing everything on unload? | |
158 { | |
159 wine_bug_20545 | |
160 Memcheck:Leak | |
161 ... | |
162 fun:Rtl*AllocateHeap | |
163 fun:MMDRV_InitPerType | |
164 fun:MMDRV_Install | |
165 fun:MMDRV_Init | |
166 } | |
167 # yet another leak on unload, seen on chromium's net http and ftp tests | |
168 { | |
169 wine_bug_20549 | |
170 Memcheck:Leak | |
171 fun:malloc | |
172 ... | |
173 fun:SECUR32_initSchannelSP | |
174 } | |
175 { | |
176 # yet another gnutls leak? | |
177 gnutls_leak_bug_2 | |
178 Memcheck:Leak | |
179 fun:calloc | |
180 ... | |
181 # fun:_gnutls_hash_init (commented out because sometimes this shows up
without symbols) | |
182 # fun:gnutls_handshake | |
183 fun:schan_InitializeSecurityContextW | |
184 fun:InitializeSecurityContextW | |
185 } | |
186 # leak on thread creation? | |
187 { | |
188 wine_bug_20552 | |
189 Memcheck:Leak | |
190 ... | |
191 fun:RtlAllocateHeap | |
192 fun:alloc_thread_tls | |
193 fun:MODULE_DllThreadAttach | |
194 } | |
195 { | |
196 wine_secur32_ignore_fork_helper_leak | |
197 Memcheck:Leak | |
198 ... | |
199 fun:RtlAllocateHeap | |
200 fun:fork_helper | |
201 fun:SECUR32_initNTLMSP | |
202 } | |
203 { | |
204 wine_bug_20548_ReadFile | |
205 Memcheck:Leak | |
206 ... | |
207 fun:RtlAllocateHeap | |
208 fun:NtReadFile | |
209 } | |
210 { | |
211 wine_bug_20548_WS_shutdown | |
212 Memcheck:Leak | |
213 ... | |
214 fun:RtlAllocateHeap | |
215 fun:WS2_register_async_shutdown | |
216 fun:WS_shutdown | |
217 } | |
218 { | |
219 wine_bug_20654 | |
220 Memcheck:Leak | |
221 ... | |
222 fun:RtlAllocateHeap | |
223 fun:get_full_path_helper | |
224 fun:RtlGetFullPathName_U | |
225 } | |
226 { | |
227 # This leak is expected - wine doesn't have a reliable way to free the defaul
t provider on exit. | |
228 wine_bug_20679 | |
229 Memcheck:Leak | |
230 ... | |
231 fun:CRYPT_GetDefaultProvider | |
232 } | |
233 { | |
234 # Benign window title leak? | |
235 wine_bug_20692_wontfix | |
236 Memcheck:Leak | |
237 ... | |
238 fun:DEFWND_SetText* | |
239 ... | |
240 fun:CreateWindow* | |
241 } | |
242 { | |
243 wine_bug_21045 | |
244 Memcheck:Leak | |
245 fun:RtlAllocateHeap | |
246 fun:SECUR32_addPackages | |
247 fun:SECUR32_initNegotiateSP | |
248 } | |
249 | |
250 # 3. Chromium specific errors that are intentional unit test errors, | |
251 # or stuff that is somehow a false positive in our own code, | |
252 # or stuff that is so trivial it's not worth fixing. | |
253 | |
254 { | |
255 wine_bug_20551_as_seen_by_chromium | |
256 Memcheck:Leak | |
257 ... | |
258 fun:RtlAllocateHeap | |
259 ... | |
260 fun:GlobalAlloc | |
261 ... | |
262 fun:Clipboard::WriteObjects | |
263 } | |
264 { | |
265 suppress_chromium_crasher | |
266 Memcheck:Addr1 | |
267 ... | |
268 fun:*Test_Crasher* | |
269 } | |
270 { | |
271 ignore_mozilla_errors | |
272 Memcheck:Cond | |
273 obj:*/ImporterTest/profile/mozcrt19.dll | |
274 } | |
275 { | |
276 ignore_mozilla_errors2 | |
277 Memcheck:Cond | |
278 obj:*/chrome/test/data/firefox3_nss/mozcrt19.dll | |
279 } | |
280 { | |
281 ignore_gears_errors | |
282 Memcheck:Addr4 | |
283 obj:*/gears.dll | |
284 } | |
285 { | |
286 ignore_nss_decryptor_init_errors | |
287 Memcheck:Leak | |
288 fun:RtlAllocateHeap | |
289 ... | |
290 fun:NSSDecryptor::Init | |
291 } | |
292 # Not sure why Valgrind started to think everything happening in the | |
293 # usr1_handler is invalid. Can't seem to reproduce these locally. | |
294 # This happens in URLFetcherTest.SameThreadsTest. | |
295 { | |
296 ignore_wine_ntdll_usr1_handler_a | |
297 Memcheck:Addr1 | |
298 ... | |
299 fun:usr1_handler | |
300 } | |
301 { | |
302 ignore_wine_ntdll_usr1_handler_b | |
303 Memcheck:Addr2 | |
304 ... | |
305 fun:usr1_handler | |
306 } | |
307 { | |
308 ignore_wine_ntdll_usr1_handler_c | |
309 Memcheck:Addr4 | |
310 ... | |
311 fun:usr1_handler | |
312 } | |
313 { | |
314 # This occurs at the same time as the usr1_handler errors above. | |
315 ignore_wine_ntdll_no_symbol | |
316 Memcheck:Addr4 | |
317 obj:*ntdll.dll.so | |
318 } | |
319 { | |
320 # mysterious leaks in rsaenh.dll.so, no symbols / incorrect symbols. | |
321 ignore_wine_rsaenh_no_symbols | |
322 Memcheck:Leak | |
323 fun:RtlAllocateHeap | |
324 obj:*rsaenh.dll.so | |
325 | |
326 } | |
327 { | |
328 # Maybe a leak in strtoi() ?? StringToInt() seems to be leak free. | |
329 ignore_strtoi_leak | |
330 Memcheck:Leak | |
331 fun:RtlAllocateHeap | |
332 ... | |
333 fun:StringToInt | |
334 } | |
335 { | |
336 # Maybe a leak in _strtoi64() ?? StringToInt64() seems to be leak free. | |
337 ignore_strtoi64_leak | |
338 Memcheck:Leak | |
339 fun:RtlAllocateHeap | |
340 ... | |
341 fun:StringToInt64 | |
342 } | |
343 { | |
344 # A leak in _vsnprintf_s? | |
345 ignore_vsnprintf_s | |
346 Memcheck:Leak | |
347 fun:RtlAllocateHeap | |
348 ... | |
349 fun:_vsnprintf_s | |
350 fun:base::vsnprintf | |
351 fun:vsnprintfT | |
352 } | |
353 { | |
354 # A leak in _wfopen_s() ?? ReadFileToString() behaves correctly. | |
355 ignore_wfopen_s_leak | |
356 Memcheck:Leak | |
357 fun:RtlAllocateHeap | |
358 ... | |
359 fun:_wfopen_s | |
360 fun:file_util::ReadFileToString | |
361 fun:FileReader::ReadFileOnBackgroundThread | |
362 } | |
363 { | |
364 # Leaking an 8 byte Clipboard object in the test code. | |
365 ignore_get_clipboard | |
366 Memcheck:Leak | |
367 fun:RtlAllocateHeap | |
368 ... | |
369 fun:operator new | |
370 fun:TestViewsDelegate::GetClipboard | |
371 fun:views::NativeTextfieldWin::OnCopy | |
372 } | |
373 { | |
374 # mysterious leak in _calloc_crt. Bug in Wine perhaps?? Hard to reproduce. | |
375 ignore_calloc_crt | |
376 Memcheck:Leak | |
377 fun:RtlAllocateHeap | |
378 fun:win_heap_malloc | |
379 fun:malloc | |
380 fun:calloc | |
381 fun:_calloc_impl | |
382 fun:_calloc_crt | |
383 STOP | |
384 } | |
385 { | |
386 # Boy, oh, boy do we need a better way to deal with this. | |
387 # See https://bugs.kde.org/show_bug.cgi?id=190660 | |
388 valgrind_bug_190660 | |
389 Memcheck:Addr4 | |
390 fun:strlen | |
391 } | |
392 { | |
393 # Boy, oh, boy do we need a better way to deal with this. | |
394 # See https://bugs.kde.org/show_bug.cgi?id=190660 | |
395 valgrind_bug_190660 | |
396 Memcheck:Addr4 | |
397 fun:strcmp | |
398 } | |
399 { | |
400 # Boy, oh, boy do we need a better way to deal with this. | |
401 # See https://bugs.kde.org/show_bug.cgi?id=190660 | |
402 valgrind_bug_190660 | |
403 Memcheck:Addr4 | |
404 fun:strchr | |
405 } | |
406 { | |
407 # Boy, oh, boy do we need a better way to deal with this. | |
408 # See https://bugs.kde.org/show_bug.cgi?id=190660 | |
409 valgrind_bug_190660 | |
410 Memcheck:Addr4 | |
411 fun:strcat | |
412 } | |
413 { | |
414 # Boy, oh, boy do we need a better way to deal with this. | |
415 # See https://bugs.kde.org/show_bug.cgi?id=190660 | |
416 valgrind_bug_190660 | |
417 Memcheck:Addr4 | |
418 fun:strncpy | |
419 } | |
420 { | |
421 # Same leak exists in src/tools/valgrind/memcheck/suppressions.txt | |
422 # with a mangled stack signature. | |
423 intentional_BrowserThreadTest_NotReleasedIfTargetThreadNonExistent_Test_leak | |
424 Memcheck:Leak | |
425 ... | |
426 fun:operator new | |
427 fun:BrowserThreadTest_NotReleasedIfTargetThreadNonExistent_Test::TestBody | |
428 fun:testing::Test::Run | |
429 } | |
430 | |
431 # 4. Suppressions for real chromium bugs that are not yet fixed. | |
432 { | |
433 # Same leak exists in src/tools/valgrind/memcheck/suppressions.txt | |
434 # with a mangled stack signature. | |
435 bug_15276 | |
436 Memcheck:Cond | |
437 fun:cld::OctaHashV3Lookup4 | |
438 fun:cld::DoOctaScoreV3 | |
439 fun:ScoreQuadgrams | |
440 fun:CompactLangDetImpl::DetectLanguageSummaryV25 | |
441 fun:CompactLangDet::DetectLanguage | |
442 } | |
443 { | |
444 # Same leak exists in src/tools/valgrind/memcheck/suppressions.txt | |
445 # with a mangled stack signature. | |
446 bug_20653a | |
447 Memcheck:Param | |
448 write(buf) | |
449 ... | |
450 fun:sqlite3OsWrite | |
451 fun:pager_write_pagelist | |
452 } | |
453 { | |
454 # Same leak exists in src/tools/valgrind/memcheck/suppressions.txt | |
455 # with a mangled stack signature. | |
456 bug_20653b | |
457 Memcheck:Param | |
458 write(buf) | |
459 ... | |
460 fun:*Write | |
461 fun:sqlite3OsWrite | |
462 ... | |
463 fun:pager_write | |
464 } | |
465 { | |
466 bug_30547 | |
467 Memcheck:Leak | |
468 ... | |
469 fun:operator new | |
470 fun:ImportantFileWriter::WriteNow | |
471 fun:BookmarkStorage::SaveNow | |
472 fun:BookmarkStorage::BookmarkModelDeleted | |
473 } | |
474 { | |
475 bug_30614 | |
476 Memcheck:Cond | |
477 fun:strncpy | |
478 fun:AffixMgr::parse_affix | |
479 ... | |
480 fun:SpellCheck::InitializeHunspell | |
481 } | |
482 { | |
483 bug_31640 | |
484 Memcheck:Leak | |
485 fun:RtlAllocateHeap | |
486 ... | |
487 fun:xmlGetGlobalState | |
488 fun:__xmlGenericError | |
489 fun:ScopedXmlErrorFunc::ScopedXmlErrorFunc | |
490 fun:UpdateManifest::Parse | |
491 } | |
492 { | |
493 bug_31643 | |
494 Memcheck:Leak | |
495 ... | |
496 fun:operator new | |
497 fun:browser_sync::UIModelWorker::DoWorkAndWaitUntilDone | |
498 fun:Syncer::SyncShare | |
499 } | |
500 { | |
501 bug_31644 | |
502 Memcheck:Leak | |
503 ... | |
504 fun:operator new | |
505 fun:NewRunnableMethod<ExtensionServiceBackend,void (__thiscall ExtensionServi
ceBackend::*)(void)> | |
506 fun:ExtensionService::ClearProvidersForTesting | |
507 } | |
508 { | |
509 bug_33424 | |
510 Memcheck:Leak | |
511 ... | |
512 fun:net::TCPClientSocketWin::Read | |
513 fun:net::*::DoReadHeaders | |
514 ... | |
515 fun:net::*::OnIOComplete | |
516 } | |
517 { | |
518 # This is a bit flaky, but it happens with both | |
519 # FLAKY_FTPDirectoryListing_Test and FLAKY_FTPCacheLoginBoxCredentials_Test | |
520 bug_33425 | |
521 Memcheck:Leak | |
522 ... | |
523 fun:net::TCPClientSocketWin::Read | |
524 fun:net::FtpNetworkTransaction::DoCtrlRead | |
525 fun:net::FtpNetworkTransaction::DoLoop | |
526 fun:net::FtpNetworkTransaction::OnIOComplete | |
527 fun:DispatchToMethod<net::FtpNetworkTransaction,void (__thiscall net::FtpNetw
orkTransaction::*)(int),int> | |
528 } | |
529 { | |
530 # This is an invalid read/write that shows up sporadically. | |
531 bug_33426 | |
532 Memcheck:Addr4 | |
533 fun:_free_base | |
534 ... | |
535 fun:std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::
~basic_stringbuf<char,std::char_traits<char>,std::allocator<char> > | |
536 fun:std::basic_stringstream<char,std::char_traits<char>,std::allocator<char>
>::~basic_stringstream<char,std::char_traits<char>,std::allocator<char> > | |
537 fun:std::basic_stringstream<char,std::char_traits<char>,std::allocator<char>
>::`vbase destructor' | |
538 fun:testing::internal::StrStreamToString | |
539 fun:testing::Message::GetString | |
540 fun:testing::AssertionResult::operator<<<enum net::LoadLog::EventPhase> | |
541 ... | |
542 fun:SSLClientSocketTest_ConnectMismatched_Test::TestBody | |
543 } | |
OLD | NEW |