1# 2# This is a valgrind suppression file that should be used when using valgrind. 3# 4# Here's an example of running valgrind: 5# 6# cd python/dist/src 7# valgrind --tool=memcheck --suppressions=Misc/valgrind-python.supp \ 8# ./python -E ./Lib/test/regrtest.py -u gui,network 9# 10# You must edit Objects/obmalloc.c and uncomment Py_USING_MEMORY_DEBUGGER 11# to use the preferred suppressions with address_in_range. 12# 13# If you do not want to recompile Python, you can uncomment 14# suppressions for _PyObject_Free and _PyObject_Realloc. 15# 16# See Misc/README.valgrind for more information. 17 18# all tool names: Addrcheck,Memcheck,cachegrind,helgrind,massif 19{ 20 ADDRESS_IN_RANGE/Invalid read of size 4 21 Memcheck:Addr4 22 fun:address_in_range 23} 24 25{ 26 ADDRESS_IN_RANGE/Invalid read of size 4 27 Memcheck:Value4 28 fun:address_in_range 29} 30 31{ 32 ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64 aka amd64) 33 Memcheck:Value8 34 fun:address_in_range 35} 36 37{ 38 ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value 39 Memcheck:Cond 40 fun:address_in_range 41} 42 43# 44# Leaks (including possible leaks) 45# Hmmm, I wonder if this masks some real leaks. I think it does. 46# Will need to fix that. 47# 48 49{ 50 Suppress leaking the GIL. Happens once per process, see comment in ceval.c. 51 Memcheck:Leak 52 fun:malloc 53 fun:PyThread_allocate_lock 54 fun:PyEval_InitThreads 55} 56 57{ 58 Suppress leaking the GIL after a fork. 59 Memcheck:Leak 60 fun:malloc 61 fun:PyThread_allocate_lock 62 fun:PyEval_ReInitThreads 63} 64 65{ 66 Suppress leaking the autoTLSkey. This looks like it shouldn't leak though. 67 Memcheck:Leak 68 fun:malloc 69 fun:PyThread_create_key 70 fun:_PyGILState_Init 71 fun:Py_InitializeEx 72 fun:Py_Main 73} 74 75{ 76 Hmmm, is this a real leak or like the GIL? 77 Memcheck:Leak 78 fun:malloc 79 fun:PyThread_ReInitTLS 80} 81 82{ 83 Handle PyMalloc confusing valgrind (possibly leaked) 84 Memcheck:Leak 85 fun:realloc 86 fun:_PyObject_GC_Resize 87 fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING 88} 89 90{ 91 Handle PyMalloc confusing valgrind (possibly leaked) 92 Memcheck:Leak 93 fun:malloc 94 fun:_PyObject_GC_New 95 fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING 96} 97 98{ 99 Handle PyMalloc confusing valgrind (possibly leaked) 100 Memcheck:Leak 101 fun:malloc 102 fun:_PyObject_GC_NewVar 103 fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING 104} 105 106# 107# Non-python specific leaks 108# 109 110{ 111 Handle pthread issue (possibly leaked) 112 Memcheck:Leak 113 fun:calloc 114 fun:allocate_dtv 115 fun:_dl_allocate_tls_storage 116 fun:_dl_allocate_tls 117} 118 119{ 120 Handle pthread issue (possibly leaked) 121 Memcheck:Leak 122 fun:memalign 123 fun:_dl_allocate_tls_storage 124 fun:_dl_allocate_tls 125} 126 127###{ 128### ADDRESS_IN_RANGE/Invalid read of size 4 129### Memcheck:Addr4 130### fun:_PyObject_Free 131###} 132### 133###{ 134### ADDRESS_IN_RANGE/Invalid read of size 4 135### Memcheck:Value4 136### fun:_PyObject_Free 137###} 138### 139###{ 140### ADDRESS_IN_RANGE/Use of uninitialised value of size 8 141### Memcheck:Addr8 142### fun:_PyObject_Free 143###} 144### 145###{ 146### ADDRESS_IN_RANGE/Use of uninitialised value of size 8 147### Memcheck:Value8 148### fun:_PyObject_Free 149###} 150### 151###{ 152### ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value 153### Memcheck:Cond 154### fun:_PyObject_Free 155###} 156 157###{ 158### ADDRESS_IN_RANGE/Invalid read of size 4 159### Memcheck:Addr4 160### fun:_PyObject_Realloc 161###} 162### 163###{ 164### ADDRESS_IN_RANGE/Invalid read of size 4 165### Memcheck:Value4 166### fun:_PyObject_Realloc 167###} 168### 169###{ 170### ADDRESS_IN_RANGE/Use of uninitialised value of size 8 171### Memcheck:Addr8 172### fun:_PyObject_Realloc 173###} 174### 175###{ 176### ADDRESS_IN_RANGE/Use of uninitialised value of size 8 177### Memcheck:Value8 178### fun:_PyObject_Realloc 179###} 180### 181###{ 182### ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value 183### Memcheck:Cond 184### fun:_PyObject_Realloc 185###} 186 187### 188### All the suppressions below are for errors that occur within libraries 189### that Python uses. The problems to not appear to be related to Python's 190### use of the libraries. 191### 192 193{ 194 Generic ubuntu ld problems 195 Memcheck:Addr8 196 obj:/lib/ld-2.4.so 197 obj:/lib/ld-2.4.so 198 obj:/lib/ld-2.4.so 199 obj:/lib/ld-2.4.so 200} 201 202{ 203 Generic gentoo ld problems 204 Memcheck:Cond 205 obj:/lib/ld-2.3.4.so 206 obj:/lib/ld-2.3.4.so 207 obj:/lib/ld-2.3.4.so 208 obj:/lib/ld-2.3.4.so 209} 210 211{ 212 DBM problems, see test_dbm 213 Memcheck:Param 214 write(buf) 215 fun:write 216 obj:/usr/lib/libdb1.so.2 217 obj:/usr/lib/libdb1.so.2 218 obj:/usr/lib/libdb1.so.2 219 obj:/usr/lib/libdb1.so.2 220 fun:dbm_close 221} 222 223{ 224 DBM problems, see test_dbm 225 Memcheck:Value8 226 fun:memmove 227 obj:/usr/lib/libdb1.so.2 228 obj:/usr/lib/libdb1.so.2 229 obj:/usr/lib/libdb1.so.2 230 obj:/usr/lib/libdb1.so.2 231 fun:dbm_store 232 fun:dbm_ass_sub 233} 234 235{ 236 DBM problems, see test_dbm 237 Memcheck:Cond 238 obj:/usr/lib/libdb1.so.2 239 obj:/usr/lib/libdb1.so.2 240 obj:/usr/lib/libdb1.so.2 241 fun:dbm_store 242 fun:dbm_ass_sub 243} 244 245{ 246 DBM problems, see test_dbm 247 Memcheck:Cond 248 fun:memmove 249 obj:/usr/lib/libdb1.so.2 250 obj:/usr/lib/libdb1.so.2 251 obj:/usr/lib/libdb1.so.2 252 obj:/usr/lib/libdb1.so.2 253 fun:dbm_store 254 fun:dbm_ass_sub 255} 256 257{ 258 GDBM problems, see test_gdbm 259 Memcheck:Param 260 write(buf) 261 fun:write 262 fun:gdbm_open 263 264} 265 266{ 267 ZLIB problems, see test_gzip 268 Memcheck:Cond 269 obj:/lib/libz.so.1.2.3 270 obj:/lib/libz.so.1.2.3 271 fun:deflate 272} 273 274{ 275 Avoid problems w/readline doing a putenv and leaking on exit 276 Memcheck:Leak 277 fun:malloc 278 fun:xmalloc 279 fun:sh_set_lines_and_columns 280 fun:_rl_get_screen_size 281 fun:_rl_init_terminal_io 282 obj:/lib/libreadline.so.4.3 283 fun:rl_initialize 284} 285 286### 287### These occur from somewhere within the SSL, when running 288### test_socket_sll. They are too general to leave on by default. 289### 290###{ 291### somewhere in SSL stuff 292### Memcheck:Cond 293### fun:memset 294###} 295###{ 296### somewhere in SSL stuff 297### Memcheck:Value4 298### fun:memset 299###} 300### 301###{ 302### somewhere in SSL stuff 303### Memcheck:Cond 304### fun:MD5_Update 305###} 306### 307###{ 308### somewhere in SSL stuff 309### Memcheck:Value4 310### fun:MD5_Update 311###} 312 313# Fedora's package "openssl-1.0.1-0.1.beta2.fc17.x86_64" on x86_64 314# See http://bugs.python.org/issue14171 315{ 316 openssl 1.0.1 prng 1 317 Memcheck:Cond 318 fun:bcmp 319 fun:fips_get_entropy 320 fun:FIPS_drbg_instantiate 321 fun:RAND_init_fips 322 fun:OPENSSL_init_library 323 fun:SSL_library_init 324 fun:init_hashlib 325} 326 327{ 328 openssl 1.0.1 prng 2 329 Memcheck:Cond 330 fun:fips_get_entropy 331 fun:FIPS_drbg_instantiate 332 fun:RAND_init_fips 333 fun:OPENSSL_init_library 334 fun:SSL_library_init 335 fun:init_hashlib 336} 337 338{ 339 openssl 1.0.1 prng 3 340 Memcheck:Value8 341 fun:_x86_64_AES_encrypt_compact 342 fun:AES_encrypt 343} 344 345# 346# All of these problems come from using test_socket_ssl 347# 348{ 349 from test_socket_ssl 350 Memcheck:Cond 351 fun:BN_bin2bn 352} 353 354{ 355 from test_socket_ssl 356 Memcheck:Cond 357 fun:BN_num_bits_word 358} 359 360{ 361 from test_socket_ssl 362 Memcheck:Value4 363 fun:BN_num_bits_word 364} 365 366{ 367 from test_socket_ssl 368 Memcheck:Cond 369 fun:BN_mod_exp_mont_word 370} 371 372{ 373 from test_socket_ssl 374 Memcheck:Cond 375 fun:BN_mod_exp_mont 376} 377 378{ 379 from test_socket_ssl 380 Memcheck:Param 381 write(buf) 382 fun:write 383 obj:/usr/lib/libcrypto.so.0.9.7 384} 385 386{ 387 from test_socket_ssl 388 Memcheck:Cond 389 fun:RSA_verify 390} 391 392{ 393 from test_socket_ssl 394 Memcheck:Value4 395 fun:RSA_verify 396} 397 398{ 399 from test_socket_ssl 400 Memcheck:Value4 401 fun:DES_set_key_unchecked 402} 403 404{ 405 from test_socket_ssl 406 Memcheck:Value4 407 fun:DES_encrypt2 408} 409 410{ 411 from test_socket_ssl 412 Memcheck:Cond 413 obj:/usr/lib/libssl.so.0.9.7 414} 415 416{ 417 from test_socket_ssl 418 Memcheck:Value4 419 obj:/usr/lib/libssl.so.0.9.7 420} 421 422{ 423 from test_socket_ssl 424 Memcheck:Cond 425 fun:BUF_MEM_grow_clean 426} 427 428{ 429 from test_socket_ssl 430 Memcheck:Cond 431 fun:memcpy 432 fun:ssl3_read_bytes 433} 434 435{ 436 from test_socket_ssl 437 Memcheck:Cond 438 fun:SHA1_Update 439} 440 441{ 442 from test_socket_ssl 443 Memcheck:Value4 444 fun:SHA1_Update 445} 446 447{ 448 test_buffer_non_debug 449 Memcheck:Addr4 450 fun:PyUnicodeUCS2_FSConverter 451} 452 453{ 454 test_buffer_non_debug 455 Memcheck:Addr4 456 fun:PyUnicode_FSConverter 457} 458 459{ 460 wcscmp_false_positive 461 Memcheck:Addr8 462 fun:wcscmp 463 fun:_PyOS_GetOpt 464 fun:Py_Main 465 fun:main 466} 467 468# Additional suppressions for the unified decimal tests: 469{ 470 test_decimal 471 Memcheck:Addr4 472 fun:PyUnicodeUCS2_FSConverter 473} 474 475{ 476 test_decimal2 477 Memcheck:Addr4 478 fun:PyUnicode_FSConverter 479} 480 481