1 2##----------------------------------------------------------------------## 3 4# Errors to suppress by default with glibc 2.3.x 5 6# Format of this file is: 7# { 8# name_of_suppression 9# tool_name:supp_kind 10# (optional extra info for some suppression types) 11# caller0 name, or /name/of/so/file.so 12# caller1 name, or ditto 13# (optionally: caller2 name) 14# (optionally: caller3 name) 15# } 16# 17# For Memcheck, the supp_kinds are: 18# 19# Param Value1 Value2 Value4 Value8 Value16 Jump 20# Free Addr1 Addr2 Addr4 Addr8 Addr16 21# Cond (previously known as Value0) 22# 23# and the optional extra info is: 24# if Param: name of system call param 25 26{ 27 __GI___stpcpy/* 28 Memcheck:Cond 29 fun:__GI___stpcpy 30 fun:* 31} 32{ 33 strlen/__GI__dl_open/dlopen_doit 34 Memcheck:Cond 35 fun:strlen 36 fun:__GI__dl_open 37 fun:dlopen_doit 38} 39{ 40 strlen/_dl_signal_cerror/_dl_lookup_symbol_internal/do_dlsym 41 Memcheck:Cond 42 fun:_dl_signal_cerror 43 fun:_dl_lookup_symbol_internal 44 fun:do_dlsym 45} 46{ 47 strlen/*dl_map_object*(Cond) 48 Memcheck:Cond 49 fun:strlen 50 fun:*dl_map_object* 51} 52 53{ 54 strlen/*dl_open_worker*(Cond) 55 Memcheck:Cond 56 fun:strlen 57 fun:*dl_open_worker* 58} 59{ 60 strlen/_dl_sym/dlsym_doit 61 Memcheck:Cond 62 fun:strlen 63 fun:_dl_sym 64 fun:dlsym_doit 65} 66{ 67 realpath is inefficiently coded 68 Memcheck:Overlap 69 fun:memcpy 70 fun:realpath* 71} 72 73{ 74 realpath stupidity part II 75 Memcheck:Overlap 76 fun:strcpy 77 fun:realpath* 78} 79{ 80 strlen/decompose_rpath/_dl_map_object 81 Memcheck:Cond 82 fun:strlen 83 fun:decompose_rpath 84 fun:*dl_map_object* 85} 86{ 87 stpcpy/_dl_sym* 88 Memcheck:Cond 89 fun:__stpcpy 90 fun:_dl_* 91} 92 93#-------- For R H 8.0 94{ 95 elf_dynamic_do_rel.7/_dl_relocate_object_internal/dl_open_worker(Cond) 96 Memcheck:Cond 97 fun:elf_dynamic_do_rel.7 98 fun:_dl_relocate_object_internal 99 fun:dl_open_worker 100} 101{ 102 dl_relocate/dl_open_worker 103 Memcheck:Cond 104 fun:_dl_relocate_object_internal 105 fun:dl_open_worker 106} 107{ 108 RedHat8-1 109 Memcheck:Cond 110 fun:elf_dynamic_do_rela.8 111 fun:_dl_relocate_object 112 fun:dl_main 113 fun:_dl_sysdep_start 114} 115{ 116 RedHat8-2 117 Memcheck:Cond 118 fun:elf_dynamic_do_rel.7 119 fun:_dl_relocate_object 120 fun:dl_main 121 fun:_dl_sysdep_start 122} 123{ 124 RedHat8-3 125 Memcheck:Cond 126 fun:elf_dynamic_do_rela.8 127 fun:_dl_relocate_object 128 fun:dl_open_worker 129} 130 131#-------- glibc 2.3.2/ Fedora Core 1 132{ 133 dl_relocate/dl_main 134 Memcheck:Cond 135 fun:_dl_relocate_object_internal 136 fun:dl_main 137} 138 139#-------- glibc 2.3.3/ Fedora Core 2 140{ 141 dl_relocate_object/dl_main 142 Memcheck:Cond 143 fun:_dl_relocate_object 144 fun:dl_main 145} 146{ 147 _dl_relocate_object/dl_open_worker 148 Memcheck:Cond 149 fun:_dl_relocate_object 150 fun:dl_open_worker 151} 152 153#-------- glibc 2.3.4/ Fedora Core 3 154{ 155 dl_relocate_object 156 Memcheck:Cond 157 fun:_dl_relocate_object 158} 159 160##----------------------------------------------------------------------## 161## Bugs in helper library supplied with Intel Icc 7.0 (65) 162## in /opt/intel/compiler70/ia32/lib/libcxa.so.3 163{ 164 Intel compiler70/ia32/lib/libcxa.so.3 below-esp accesses 165 Memcheck:Addr4 166 obj:/opt/intel/compiler70/ia32/lib/libcxa.so.3 167} 168 169##----------------------------------------------------------------------## 170## SuSE 9 after FV changes (post 2.1.0) 171 172{ 173 strlen/_dl_init_paths/dl_main/_dl_sysdep_start(Cond) 174 Memcheck:Cond 175 fun:strlen 176 fun:_dl_init_paths 177 fun:dl_main 178 fun:_dl_sysdep_start 179} 180 181{ 182 Ugly strchr error in /lib/ld-2.3.2.so 183 Memcheck:Cond 184 obj:/lib/ld-2.3.2.so 185} 186 187##----------------------------------------------------------------------## 188## SuSE 9.1 with post 2.1.2 189{ 190 Ugly strchr error in /lib/ld-2.3.3.so 191 Memcheck:Cond 192 obj:/lib/ld-2.3.3.so 193} 194 195##----------------------------------------------------------------------## 196## SuSE 9.1 with 3.0 branch (x86) 197{ 198 Strstr dubiousness in pthread_initialize 199 Memcheck:Cond 200 fun:strstr 201 fun:pthread_initialize 202 obj:/lib/libpthread.so.0 203 obj:/lib/libpthread.so.0 204} 205 206##----------------------------------------------------------------------## 207## glibc-2.3.3 on FC2 208## Assumes that sysctl returns \0-terminated strings in is_smp_system 209#{ 210# Unterminated strstr string in is_smp_system() (NPTL) 211# Memcheck:Cond 212# fun:strstr 213# fun:__pthread_initialize_minimal 214# obj:/lib/tls/libpthread*.so* 215# obj:/lib/tls/libpthread*.so* 216#} 217#{ 218# Unterminated strstr string in is_smp_system() (LinuxThreads) 219# Memcheck:Cond 220# fun:strstr 221# fun:pthread_initialize 222# obj:/lib/i686/libpthread*.so* 223# obj:/lib/i686/libpthread*.so* 224#} 225#{ 226# Unterminated strstr string in is_smp_system() (LinuxThreads) 227# Memcheck:Cond 228# fun:strstr 229# fun:pthread_initialize 230# obj:/lib/libpthread-0.10.so 231# obj:/lib/libpthread-0.10.so 232#} 233 234## Bug in PRE(sys_clone), really. Some args are not used. 235{ 236 LinuxThread clone use (parent_tidptr) 237 Memcheck:Param 238 clone(parent_tidptr) 239 fun:clone 240 fun:pthread_create 241} 242{ 243 LinuxThread clone use (child_tidptr) 244 Memcheck:Param 245 clone(child_tidptr) 246 fun:clone 247 fun:pthread_create 248} 249{ 250 LinuxThread clone use (tlsinfo) 251 Memcheck:Param 252 clone(tlsinfo) 253 fun:clone 254 fun:pthread_create 255} 256{ 257 LinuxThread clone use (parent_tidptr) 258 Memcheck:Param 259 clone(parent_tidptr) 260 fun:clone 261 fun:pthread_create@@GLIBC_2.1 262} 263{ 264 LinuxThread clone use (child_tidptr) 265 Memcheck:Param 266 clone(child_tidptr) 267 fun:clone 268 fun:pthread_create@@GLIBC_2.1 269} 270{ 271 LinuxThread clone use (tlsinfo) 272 Memcheck:Param 273 clone(tlsinfo) 274 fun:clone 275 fun:pthread_create@@GLIBC_2.1 276} 277 278## LinuxThreads manager writes messages containing undefined bytes 279{ 280 LinuxThreads: write/pthread_onexit_process 281 Memcheck:Param 282 write(buf) 283 fun:pthread_onexit_process 284 fun:exit 285} 286{ 287 LinuxThreads: write/pthread_join 288 Memcheck:Param 289 write(buf) 290 fun:pthread_join 291} 292{ 293 LinuxThreads: write/pthread_create 294 Memcheck:Param 295 write(buf) 296 fun:pthread_create@@GLIBC_2.1 297} 298{ 299 LinuxThreads: write/pthread_create 2 300 Memcheck:Param 301 write(buf) 302 fun:write 303 fun:pthread_create@@GLIBC_2.1 304 fun:main 305} 306{ 307 LinuxThreads: write/__pthread_initialize_manager/pthread_create 308 Memcheck:Param 309 write(buf) 310 fun:__pthread_initialize_manager 311 fun:pthread_create@@GLIBC_2.1 312} 313 314{ 315 LinuxThreads: write/pthread_create 316 Memcheck:Param 317 write(buf) 318 fun:write 319 fun:pthread_create 320} 321 322## LinuxThreads leaks the stack and TLS data for the manager thread 323{ 324 LinuxThreads: leaks stack of manager thread 325 Memcheck:Leak 326 fun:malloc 327 fun:__pthread_initialize_manager 328 fun:pthread_create@@GLIBC_2.1 329} 330{ 331 LinuxThreads: leaks TLS data for manager thread 332 Memcheck:Leak 333 fun:calloc 334 fun:_dl_allocate_tls 335 fun:__pthread_initialize_minimal 336} 337{ 338 LinuxThreads: leaks TLS data for manager thread 339 Memcheck:Leak 340 fun:memalign 341 fun:_dl_allocate_tls 342 fun:__pthread_initialize_minimal 343} 344 345##----------------------------------------------------------------------## 346## glibc-2.3.4 on FC3 347## Assumes that sysctl returns \0-terminated strings in is_smp_system 348#{ 349# Unterminated strstr string in is_smp_system() (NPTL) 350# Memcheck:Cond 351# fun:strstr 352# fun:__pthread_initialize_minimal 353# obj:/lib/tls/libpthread-2.3.4.so 354# obj:/lib/tls/libpthread-2.3.4.so 355#} 356#{ 357# Unterminated strstr string in is_smp_system() (NPTL) 358# Memcheck:Cond 359# fun:strstr 360# fun:__pthread_initialize_minimal 361# obj:/lib64/tls/libpthread*.so* 362#} 363 364##----------------------------------------------------------------------## 365## glibc-2.3.5 on FC4 366## Assumes that sysctl returns \0-terminated strings in is_smp_system 367#{ 368# Unterminated strstr string in is_smp_system() (NPTL) 369# Memcheck:Cond 370# fun:strstr 371# fun:__pthread_initialize_minimal 372# obj:*/libpthread-2.3.5.so 373# obj:*/libpthread-2.3.5.so 374#} 375 376 377##----------------------------------------------------------------------## 378# 379# I don't know why this is needed, but still: 380{ 381 glibc-2.3.x-on-SuSE-10.0-(PPC)-1 382 Memcheck:Cond 383 fun:_dl_start 384 fun:_start 385} 386{ 387 glibc-2.3.x-on-SuSE-10.1-(PPC)-1 388 Memcheck:Cond 389 fun:_dl_start_final 390 fun:_dl_start 391 fun:_start 392} 393{ 394 glibc-2.3.x-on-SuSE-10.0/10.1-(PPC)-2a 395 Memcheck:Cond 396 fun:index 397 obj:*ld-2.3.*.so 398} 399{ 400 glibc-2.3.x-on-SuSE-10.0/10.1-(PPC)-2b 401 Memcheck:Addr4 402 fun:index 403 fun:expand_dynamic_string_token 404} 405{ 406 glibc-2.3.5-on-SuSE-10.0/10.1-(PPC)-2c 407 Memcheck:Addr4 408 fun:index 409 obj:*ld-2.3.*.so 410} 411{ 412 glibc-2.3.5-on-SuSE-10.0/10.1-(PPC)-3 413 Memcheck:Addr4 414 fun:*wordcopy_fwd_dest_aligned* 415 fun:mem*cpy 416 obj:*lib*2.3.*.so 417} 418{ 419 glibc-2.3.5-on-SuSE-10.0/10.1-(PPC)-4 420 Memcheck:Addr4 421 fun:bcmp 422 fun:*rpath* 423 fun:*rpath* 424 fun:*rpath* 425} 426 427##----------------------------------------------------------------------## 428# Hacks pertaining to the fact that our intercept mechanism can't 429# always get hold of strlen early enough, due to idiocy in the low 430# level memory manager. 431 432## HACK to do with strlen not being intercepted early enough 433{ 434 strlen-not-intercepted-early-enough-HACK-1 435 Memcheck:Addr4 436 fun:strlen 437 fun:_dl_map_object_from_fd 438 fun:_dl_map_object 439} 440 441{ 442 strlen-not-intercepted-early-enough-HACK-2 443 Memcheck:Addr4 444 fun:strlen 445 fun:decompose_rpath 446 fun:cache_rpath 447 fun:_dl_map_object 448} 449 450{ 451 strlen-not-intercepted-early-enough-HACK-3 452 Memcheck:Cond 453 fun:strlen 454 fun:_dl_new_object 455 fun:_dl_map_object_from_fd 456 fun:_dl_map_object 457} 458 459{ 460 strlen-not-intercepted-early-enough-HACK-4 461 Memcheck:Cond 462 fun:strlen 463 fun:expand_dynamic_string_token 464 fun:_dl_map_object 465} 466 467{ 468 strlen-not-intercepted-early-enough-HACK-5 469 Memcheck:Cond 470 fun:strlen 471 fun:fillin_rpath 472 fun:_dl_init_paths 473} 474 475 476## HACK to do with index not being intercepted early enough 477{ 478 index-not-intercepted-early-enough-HACK-1 479 Memcheck:Cond 480 fun:index 481 obj:* 482 fun:_dl_map_object 483} 484{ 485 index-not-intercepted-early-enough-HACK-2 486 Memcheck:Cond 487 fun:index 488 fun:_dl_map_object 489 obj:* 490 fun:_dl_catch_error 491} 492{ 493 index-not-intercepted-early-enough-HACK-3 494 Memcheck:Cond 495 fun:index 496 fun:_dl_map_object 497 obj:* 498 fun:_dl_sysdep_start 499} 500 501{ 502 index-not-intercepted-early-enough-HACK-4 503 Memcheck:Cond 504 fun:index 505 fun:expand_dynamic_string_token 506} 507 508 509##----------------------------------------------------------------------## 510## MontaVista 3.1 on ppc32 integer only 511{ 512 MontaVista-3.1-ppc32-#1 513 Memcheck:Value4 514 obj:/lib/ld-2.3.2.so 515 obj:/lib/ld-2.3.2.so 516 fun:*dl_map_object* 517 obj:/lib/libc-2.3.2.so 518} 519 520{ 521 MontaVista-3.1-ppc32-#2 522 Memcheck:Value4 523 fun:malloc 524 obj:/lib/ld-2.3.2.so 525 obj:/lib/ld-2.3.2.so 526 obj:/lib/libc-2.3.2.so 527} 528 529{ 530 MontaVista-3.1-ppc32-#3 531 Memcheck:Value4 532 obj:/lib/ld-2.3.2.so 533 obj:/lib/ld-2.3.2.so 534} 535 536##----------------------------------------------------------------------## 537## Ubuntu something (based on Debian 3.0?) on x86 538 539{ 540 Ubuntu-stripped-ld.so 541 Memcheck:Cond 542 obj:/lib/ld-2.3.*.so 543 obj:/lib/ld-2.3.*.so 544 obj:/lib/ld-2.3.*.so 545 obj:/lib/ld-2.3.*.so 546 obj:/lib/ld-2.3.*.so 547} 548 549##----------------------------------------------------------------------## 550# MontaVista Linux 4.0.1 on ppc32 551{ 552 MVL-401-linuxthreads-pthread_create 553 Memcheck:Param 554 write(buf) 555 fun:pthread_create 556} 557{ 558 MVL-401-linuxthreads-pthread_create 559 Memcheck:Param 560 write(buf) 561 obj:/lib/libpthread-0.10.so 562 fun:pthread_create 563} 564