Jeff Brown | ed07e00 | 2011-02-03 17:46:23 -0800 | [diff] [blame] | 1 | |
| 2 | ##----------------------------------------------------------------------## |
| 3 | |
| 4 | # Errors to suppress by default with glibc 2.2.4 / 2.2.5 |
| 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 | #-------- For SuSE 8.2 (gcc 3.3, glibc 2.3.2) |
| 27 | { |
| 28 | __GI___stpcpy/* |
| 29 | Memcheck:Cond |
| 30 | fun:__GI___stpcpy |
| 31 | fun:* |
| 32 | } |
| 33 | { |
| 34 | strlen/__GI__dl_open/dlopen_doit |
| 35 | Memcheck:Cond |
| 36 | fun:strlen |
| 37 | fun:__GI__dl_open |
| 38 | fun:dlopen_doit |
| 39 | } |
| 40 | { |
| 41 | strlen/_dl_signal_cerror/_dl_lookup_symbol_internal/do_dlsym |
| 42 | Memcheck:Cond |
| 43 | fun:_dl_signal_cerror |
| 44 | fun:_dl_lookup_symbol_internal |
| 45 | fun:do_dlsym |
| 46 | } |
| 47 | |
| 48 | |
| 49 | #-------- For R H 8.0 |
| 50 | { |
| 51 | elf_dynamic_do_rel.7/_dl_relocate_object_internal/dl_open_worker(Cond) |
| 52 | Memcheck:Cond |
| 53 | fun:elf_dynamic_do_rel.7 |
| 54 | fun:_dl_relocate_object_internal |
| 55 | fun:dl_open_worker |
| 56 | } |
| 57 | |
| 58 | |
| 59 | #-------- For R H 7.3 on i686 |
| 60 | { |
| 61 | _dl_relocate_object*/*libc-2.2.?.so/_dl_catch_error*(Cond) |
| 62 | Memcheck:Cond |
| 63 | fun:_dl_relocate_object* |
| 64 | obj:*libc-2.2.?.so |
| 65 | fun:_dl_catch_error* |
| 66 | } |
| 67 | { |
| 68 | _dl_relocate_object_internal |
| 69 | Memcheck:Cond |
| 70 | fun:_dl_relocate_object_internal |
| 71 | } |
| 72 | { |
| 73 | index/*-2.2.5.so/*-2.2.5.so |
| 74 | Memcheck:Cond |
| 75 | fun:index |
| 76 | obj:*-2.2.5.so |
| 77 | obj:*-2.2.5.so |
| 78 | } |
| 79 | { |
| 80 | Red Hat 7.3 #4 |
| 81 | Memcheck:Cond |
| 82 | fun:strlen |
| 83 | fun:dl_main |
| 84 | fun:_dl_sysdep_start |
| 85 | } |
| 86 | |
| 87 | #-------- SuSE 8.1 stuff (gcc-3.2, glibc-2.2.5 + SuSE's hacks) |
| 88 | { |
| 89 | __stpcpy/* |
| 90 | Memcheck:Cond |
| 91 | fun:__stpcpy |
| 92 | fun:* |
| 93 | } |
| 94 | { |
| 95 | strlen/decompose_rpath/_dl_map_object |
| 96 | Memcheck:Cond |
| 97 | fun:strlen |
| 98 | fun:decompose_rpath |
| 99 | fun:_dl_map_object |
| 100 | } |
| 101 | { |
| 102 | strlen/_dl_sym/dlsym_doit |
| 103 | Memcheck:Cond |
| 104 | fun:strlen |
| 105 | fun:_dl_sym |
| 106 | fun:dlsym_doit |
| 107 | } |
| 108 | { |
| 109 | trecurse/__gconv_release_shlib(Addr4) |
| 110 | Memcheck:Addr4 |
| 111 | fun:trecurse |
| 112 | fun:__gconv_release_shlib |
| 113 | } |
| 114 | { |
| 115 | do_release_shlib/trecurse(Addr4) |
| 116 | Memcheck:Addr4 |
| 117 | fun:do_release_shlib |
| 118 | fun:trecurse |
| 119 | } |
| 120 | |
| 121 | #-------- R H Limbo (glibc-2.2.90) stuff |
| 122 | { |
| 123 | elf_dynamic_do_rela.8/_dl_relocate_object_internal |
| 124 | Memcheck:Cond |
| 125 | fun:elf_dynamic_do_rela.8 |
| 126 | fun:_dl_relocate_object_internal |
| 127 | } |
| 128 | |
| 129 | { |
| 130 | __strnlen/_nl_make_l10nflist(Cond) |
| 131 | Memcheck:Cond |
| 132 | fun:__strnlen |
| 133 | fun:_nl_make_l10nflist |
| 134 | } |
| 135 | |
| 136 | { |
| 137 | __strnlen/*vfprintf* |
| 138 | Memcheck:Cond |
| 139 | fun:__strnlen |
| 140 | fun:*vfprintf* |
| 141 | } |
| 142 | |
| 143 | { |
| 144 | libXaw.so.7.0(Cond) |
| 145 | Memcheck:Cond |
| 146 | obj:*libXaw.so.7.0 |
| 147 | } |
| 148 | |
| 149 | #-------- Suppress errors appearing as a result of calling |
| 150 | #-------- __libc_freeres() |
| 151 | |
| 152 | { |
| 153 | __twalk/*(Addr4) |
| 154 | Memcheck:Addr4 |
| 155 | fun:__twalk |
| 156 | } |
| 157 | |
| 158 | { |
| 159 | do_release_shlib/__twalk(Addr4) |
| 160 | Memcheck:Addr4 |
| 161 | fun:do_release_shlib |
| 162 | fun:__twalk |
| 163 | } |
| 164 | |
| 165 | { |
| 166 | __libc_freeres/free_mem/free(Free) |
| 167 | Memcheck:Free |
| 168 | fun:free |
| 169 | fun:free_mem |
| 170 | fun:__libc_freeres |
| 171 | } |
| 172 | |
| 173 | # even more glibc suppressions ? |
| 174 | { |
| 175 | libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Cond) |
| 176 | Memcheck:Cond |
| 177 | obj:*libc-2.2.?.so |
| 178 | obj:*libc-2.2.?.so |
| 179 | obj:*libc-2.2.?.so |
| 180 | } |
| 181 | { |
| 182 | libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Value4) |
| 183 | Memcheck:Value4 |
| 184 | obj:*libc-2.2.?.so |
| 185 | obj:*libc-2.2.?.so |
| 186 | obj:*libc-2.2.?.so |
| 187 | } |
| 188 | |
| 189 | ##### glibc 2.2.5 stuff perhaps? |
| 190 | ##### suppressions for coolo |
| 191 | { |
| 192 | strchr/dl_open_worker(Cond) |
| 193 | Memcheck:Cond |
| 194 | fun:strchr |
| 195 | fun:dl_open_worker |
| 196 | } |
| 197 | { |
| 198 | __rawmemchr(Cond) |
| 199 | Memcheck:Cond |
| 200 | fun:__rawmemchr |
| 201 | } |
| 202 | { |
| 203 | _IO_vfprintf/__strnlen(Cond) |
| 204 | Memcheck:Cond |
| 205 | fun:__strnlen |
| 206 | fun:_IO_vfprintf |
| 207 | } |
| 208 | { |
| 209 | __strchrnul/gethostbyname*(Cond) |
| 210 | Memcheck:Cond |
| 211 | fun:__strchrnul |
| 212 | fun:gethostbyname* |
| 213 | } |
| 214 | |
| 215 | |
| 216 | ##---- |
| 217 | { |
| 218 | strlen/*dl_map_object*(Cond) |
| 219 | Memcheck:Cond |
| 220 | fun:strlen |
| 221 | fun:*dl_map_object* |
| 222 | } |
| 223 | |
| 224 | { |
| 225 | strlen/*dl_open_worker*(Cond) |
| 226 | Memcheck:Cond |
| 227 | fun:strlen |
| 228 | fun:*dl_open_worker* |
| 229 | } |
| 230 | |
| 231 | { |
| 232 | *rawmemchr*/*nss*(Cond) |
| 233 | Memcheck:Cond |
| 234 | fun:*rawmemchr* |
| 235 | fun:*nss* |
| 236 | } |
| 237 | |
| 238 | { |
| 239 | *strchrnul*/*nss*(Cond) |
| 240 | Memcheck:Cond |
| 241 | fun:*strchrnul* |
| 242 | fun:*nss* |
| 243 | } |
| 244 | |
| 245 | # gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98) |
| 246 | # on Red Hat 7.2 (x86) miscompiles __mpn_construct_double in |
| 247 | # __mpn_construct_double (../sysdeps/ieee754/dbl-64/mpn2dbl.c:45) |
| 248 | # (glibc-2.2.4) to read and write below %esp. Hence the following |
| 249 | # two: |
| 250 | { |
| 251 | __mpn_construct_double/*(Addr4) |
| 252 | Memcheck:Addr4 |
| 253 | fun:__mpn_construct_double |
| 254 | fun:* |
| 255 | } |
| 256 | { |
| 257 | __mpn_construct_double/*(Addr8) |
| 258 | Memcheck:Addr8 |
| 259 | fun:__mpn_construct_double |
| 260 | fun:* |
| 261 | } |
| 262 | |
| 263 | # More of the same (gcc bug, I'm pretty sure) |
| 264 | { |
| 265 | __fabs/*(Addr4) |
| 266 | Memcheck:Addr4 |
| 267 | fun:__fabs |
| 268 | fun:* |
| 269 | } |
| 270 | { |
| 271 | __fabs/*(Addr8) |
| 272 | Memcheck:Addr8 |
| 273 | fun:__fabs |
| 274 | fun:* |
| 275 | } |
| 276 | |
| 277 | |
| 278 | # Not sure what this is about ... but anyway |
| 279 | { |
| 280 | pthread_sighandler/*(Addr4) |
| 281 | Memcheck:Addr4 |
| 282 | fun:pthread_sighandler |
| 283 | fun:* |
| 284 | } |
| 285 | |
| 286 | |
| 287 | # More glibc stuff, AFAICS |
| 288 | |
| 289 | { |
| 290 | __strnlen/__argz_stringify/_nl_make_l10nflist(Cond) |
| 291 | Memcheck:Cond |
| 292 | fun:__strnlen |
| 293 | fun:__argz_stringify |
| 294 | fun:_nl_make_l10nflist |
| 295 | } |
| 296 | |
| 297 | #-------------- |
| 298 | { |
| 299 | _dl_relocate_object*/dl_open_worker/_dl_catch_error*(Cond) |
| 300 | Memcheck:Cond |
| 301 | fun:_dl_relocate_object* |
| 302 | fun:dl_open_worker |
| 303 | fun:_dl_catch_error* |
| 304 | } |
| 305 | { |
| 306 | _dl_relocate_object/libc-2.2.4.so/_dl_catch_error(Cond) |
| 307 | Memcheck:Cond |
| 308 | fun:_dl_relocate_object |
| 309 | obj:*libc-2.2.?.so |
| 310 | fun:_dl_catch_error |
| 311 | } |
| 312 | { |
| 313 | _dl_relocate_object/dl_main(Cond) |
| 314 | Memcheck:Cond |
| 315 | fun:_dl_relocate_object |
| 316 | fun:dl_main |
| 317 | } |
| 318 | { |
| 319 | _dl_relocate_object_internal/dl_main(Cond) |
| 320 | Memcheck:Cond |
| 321 | fun:_dl_relocate_object_internal |
| 322 | fun:dl_main |
| 323 | } |
| 324 | |
| 325 | { |
| 326 | strrchr/_dl_map_object_from_fd/_dl_map_object(Cond) |
| 327 | Memcheck:Cond |
| 328 | fun:strrchr |
| 329 | fun:_dl_map_object_from_fd |
| 330 | fun:_dl_map_object |
| 331 | } |
| 332 | |
| 333 | { |
| 334 | _dl_start/ld-2.2.4.so(Cond) |
| 335 | Memcheck:Cond |
| 336 | fun:_dl_start |
| 337 | obj:/lib/ld-2.2.4.so |
| 338 | } |
| 339 | |
| 340 | #-------- glibc 2.2.5/ Debian 3.0 |
| 341 | { |
| 342 | _dl_start(Cond) |
| 343 | Memcheck:Cond |
| 344 | fun:_dl_start |
| 345 | } |
| 346 | |
| 347 | { |
| 348 | _dl_start(Cond) |
| 349 | Memcheck:Cond |
| 350 | fun:_dl_relocate_object |
| 351 | } |
| 352 | |
| 353 | #------------------- |
| 354 | { |
| 355 | socketcall.connect(serv_addr)/connect/* |
| 356 | Memcheck:Param |
| 357 | socketcall.connect(serv_addr) |
| 358 | fun:connect |
| 359 | fun:* |
| 360 | } |
| 361 | { |
| 362 | socketcall.connect(serv_addr)/libc-2.2.4.so/libc-2.2.4.so |
| 363 | Memcheck:Param |
| 364 | socketcall.connect(serv_addr) |
| 365 | obj:*libc-2.2.?.so |
| 366 | obj:*libc-2.2.?.so |
| 367 | } |
| 368 | |
| 369 | #---------------------- |
| 370 | { |
| 371 | write(buf)/write/libX11.so.6.2/libX11.so.6.2(Param) |
| 372 | Memcheck:Param |
| 373 | write(buf) |
| 374 | fun:write |
| 375 | obj:/usr/X11R6/lib/libX11.so.6.2 |
| 376 | obj:/usr/X11R6/lib/libX11.so.6.2 |
| 377 | } |
| 378 | { |
| 379 | write(buf)/libc-2.2.4.so/libX11.so.6.2/libX11.so.6.2(Param) |
| 380 | Memcheck:Param |
| 381 | write(buf) |
| 382 | obj:*libc-2.2.?.so |
| 383 | obj:/usr/X11R6/lib/libX11.so.6.2 |
| 384 | obj:/usr/X11R6/lib/libX11.so.6.2 |
| 385 | } |
| 386 | |
| 387 | #{ |
| 388 | # llseek(result)/lseek64/_IO_file_seek(Param) |
| 389 | # Param |
| 390 | # llseek(result) |
| 391 | # fun:lseek64 |
| 392 | # fun:_IO_file_seek |
| 393 | #} |
| 394 | |
| 395 | { |
| 396 | writev(vector[...])/__writev/libX11.so.6.2/libX11.so.6.2 |
| 397 | Memcheck:Param |
| 398 | writev(vector[...]) |
| 399 | fun:__writev |
| 400 | obj:/usr/X11R6/lib/libX11.so.6.2 |
| 401 | obj:/usr/X11R6/lib/libX11.so.6.2 |
| 402 | } |
| 403 | |
| 404 | #---------------- |
| 405 | { |
| 406 | __rawmemchr/libXt.so.6.0/libXt.so.6.0 |
| 407 | Memcheck:Cond |
| 408 | fun:__rawmemchr |
| 409 | obj:/usr/X11R6/lib/libXt.so.6.0 |
| 410 | obj:/usr/X11R6/lib/libXt.so.6.0 |
| 411 | } |
| 412 | { |
| 413 | libc-2.2.4.so/libXt.so.6.0/libXt.so.6.0 |
| 414 | Memcheck:Cond |
| 415 | obj:*libc-2.2.?.so |
| 416 | obj:/usr/X11R6/lib/libXt.so.6.0 |
| 417 | obj:/usr/X11R6/lib/libXt.so.6.0 |
| 418 | } |
| 419 | |
| 420 | ## Bug in PRE(sys_clone), really. Some args are not used. |
| 421 | { |
| 422 | LinuxThread clone use (child_tidptr) |
| 423 | Memcheck:Param |
| 424 | clone(child_tidptr) |
| 425 | fun:clone |
| 426 | fun:__pthread_initialize_manager |
| 427 | fun:pthread_create@@GLIBC_2.2.5 |
| 428 | } |
| 429 | |
| 430 | ## LinuxThreads manager writes messages containing undefined bytes |
| 431 | { |
| 432 | LinuxThreads: write/pthread_create |
| 433 | Memcheck:Param |
| 434 | write(buf) |
| 435 | fun:pthread_create@@GLIBC_2.1 |
| 436 | } |
| 437 | { |
| 438 | LinuxThreads: write/pthread_create |
| 439 | Memcheck:Param |
| 440 | write(buf) |
| 441 | fun:write |
| 442 | fun:pthread_create@@GLIBC_2.1 |
| 443 | } |
| 444 | { |
| 445 | LinuxThreads: write/pthread_onexit_process |
| 446 | Memcheck:Param |
| 447 | write(buf) |
| 448 | fun:write |
| 449 | fun:pthread_onexit_process |
| 450 | fun:exit |
| 451 | } |
| 452 | { |
| 453 | LinuxThreads: write/pthread_join |
| 454 | Memcheck:Param |
| 455 | write(buf) |
| 456 | fun:write |
| 457 | fun:pthread_join |
| 458 | } |
| 459 | { |
| 460 | LinuxThreads: write/pthread_create |
| 461 | Memcheck:Param |
| 462 | write(buf) |
| 463 | fun:write |
| 464 | fun:pthread_create@@GLIBC_2.2.5 |
| 465 | } |
| 466 | { |
| 467 | LinuxThreads: write/__pthread_initialize_manager/pthread_create |
| 468 | Memcheck:Param |
| 469 | write(buf) |
| 470 | fun:write |
| 471 | fun:__pthread_initialize_manager |
| 472 | fun:pthread_create@@GLIBC_2.2.5 |
| 473 | } |
| 474 | |
| 475 | ## LinuxThreads leaks the stack and TLS data for the manager thread |
| 476 | { |
| 477 | LinuxThreads: leaks stack of manager thread |
| 478 | Memcheck:Leak |
| 479 | fun:malloc |
| 480 | fun:__pthread_initialize_manager |
| 481 | fun:pthread_create@@GLIBC_2.1 |
| 482 | } |
| 483 | { |
| 484 | LinuxThreads: leaks TLS data for manager thread |
| 485 | Memcheck:Leak |
| 486 | fun:calloc |
| 487 | fun:_dl_allocate_tls |
| 488 | fun:__pthread_initialize_minimal |
| 489 | } |
| 490 | { |
| 491 | LinuxThreads: leaks TLS data for manager thread |
| 492 | Memcheck:Leak |
| 493 | fun:memalign |
| 494 | fun:_dl_allocate_tls |
| 495 | fun:__pthread_initialize_minimal |
| 496 | } |
| 497 | { |
| 498 | LinuxThreads: leaks stack of manager thread |
| 499 | Memcheck:Leak |
| 500 | fun:malloc |
| 501 | fun:__pthread_initialize_manager |
| 502 | fun:pthread_create@@GLIBC_2.2.5 |
| 503 | } |
| 504 | { |
| 505 | LinuxThreads: leaks TLS data for manager thread |
| 506 | Memcheck:Leak |
| 507 | fun:calloc |
| 508 | fun:allocate_dtv |
| 509 | fun:_dl_allocate_tls_storage |
| 510 | fun:_dl_allocate_tls |
| 511 | fun:__pthread_initialize_minimal |
| 512 | } |
| 513 | { |
| 514 | LinuxThreads: leaks TLS data for manager thread |
| 515 | Memcheck:Leak |
| 516 | fun:memalign |
| 517 | fun:_dl_allocate_tls_storage |
| 518 | fun:_dl_allocate_tls |
| 519 | fun:__pthread_initialize_minimal |
| 520 | } |