| 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 |