| # |
| # This is a valgrind suppression file that should be used when using valgrind. |
| # |
| # Here's an example of running valgrind: |
| # |
| # cd python/dist/src |
| # valgrind --tool=memcheck --suppressions=Misc/valgrind-python.supp \ |
| # ./python -E ./Lib/test/regrtest.py -u gui,network |
| # |
| # You must edit Objects/obmalloc.c and uncomment Py_USING_MEMORY_DEBUGGER |
| # to use the preferred suppressions with address_in_range. |
| # |
| # If you do not want to recompile Python, you can uncomment |
| # suppressions for _PyObject_Free and _PyObject_Realloc. |
| # |
| # See Misc/README.valgrind for more information. |
| |
| # all tool names: Addrcheck,Memcheck,cachegrind,helgrind,massif |
| { |
| ADDRESS_IN_RANGE/Invalid read of size 4 |
| Memcheck:Addr4 |
| fun:address_in_range |
| } |
| |
| { |
| ADDRESS_IN_RANGE/Invalid read of size 4 |
| Memcheck:Value4 |
| fun:address_in_range |
| } |
| |
| { |
| ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64 aka amd64) |
| Memcheck:Value8 |
| fun:address_in_range |
| } |
| |
| { |
| ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value |
| Memcheck:Cond |
| fun:address_in_range |
| } |
| |
| # |
| # Leaks (including possible leaks) |
| # Hmmm, I wonder if this masks some real leaks. I think it does. |
| # Will need to fix that. |
| # |
| |
| { |
| Suppress leaking the GIL after a fork. |
| Memcheck:Leak |
| fun:malloc |
| fun:PyThread_allocate_lock |
| fun:PyEval_ReInitThreads |
| } |
| |
| { |
| Suppress leaking the autoTLSkey. This looks like it shouldn't leak though. |
| Memcheck:Leak |
| fun:malloc |
| fun:PyThread_create_key |
| fun:_PyGILState_Init |
| fun:Py_InitializeEx |
| fun:Py_Main |
| } |
| |
| { |
| Hmmm, is this a real leak or like the GIL? |
| Memcheck:Leak |
| fun:malloc |
| fun:PyThread_ReInitTLS |
| } |
| |
| { |
| Handle PyMalloc confusing valgrind (possibly leaked) |
| Memcheck:Leak |
| fun:realloc |
| fun:_PyObject_GC_Resize |
| fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING |
| } |
| |
| { |
| Handle PyMalloc confusing valgrind (possibly leaked) |
| Memcheck:Leak |
| fun:malloc |
| fun:_PyObject_GC_New |
| fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING |
| } |
| |
| { |
| Handle PyMalloc confusing valgrind (possibly leaked) |
| Memcheck:Leak |
| fun:malloc |
| fun:_PyObject_GC_NewVar |
| fun:COMMENT_THIS_LINE_TO_DISABLE_LEAK_WARNING |
| } |
| |
| # |
| # Leaks: dlopen() called without dlclose() |
| # |
| |
| { |
| dlopen() called without dlclose() |
| Memcheck:Leak |
| fun:malloc |
| fun:malloc |
| fun:strdup |
| fun:_dl_load_cache_lookup |
| } |
| { |
| dlopen() called without dlclose() |
| Memcheck:Leak |
| fun:malloc |
| fun:malloc |
| fun:strdup |
| fun:_dl_map_object |
| } |
| { |
| dlopen() called without dlclose() |
| Memcheck:Leak |
| fun:malloc |
| fun:* |
| fun:_dl_new_object |
| } |
| { |
| dlopen() called without dlclose() |
| Memcheck:Leak |
| fun:calloc |
| fun:* |
| fun:_dl_new_object |
| } |
| { |
| dlopen() called without dlclose() |
| Memcheck:Leak |
| fun:calloc |
| fun:* |
| fun:_dl_check_map_versions |
| } |
| |
| |
| # |
| # Non-python specific leaks |
| # |
| |
| { |
| Handle pthread issue (possibly leaked) |
| Memcheck:Leak |
| fun:calloc |
| fun:allocate_dtv |
| fun:_dl_allocate_tls_storage |
| fun:_dl_allocate_tls |
| } |
| |
| { |
| Handle pthread issue (possibly leaked) |
| Memcheck:Leak |
| fun:memalign |
| fun:_dl_allocate_tls_storage |
| fun:_dl_allocate_tls |
| } |
| |
| ###{ |
| ### ADDRESS_IN_RANGE/Invalid read of size 4 |
| ### Memcheck:Addr4 |
| ### fun:_PyObject_Free |
| ###} |
| ### |
| ###{ |
| ### ADDRESS_IN_RANGE/Invalid read of size 4 |
| ### Memcheck:Value4 |
| ### fun:_PyObject_Free |
| ###} |
| ### |
| ###{ |
| ### ADDRESS_IN_RANGE/Use of uninitialised value of size 8 |
| ### Memcheck:Addr8 |
| ### fun:_PyObject_Free |
| ###} |
| ### |
| ###{ |
| ### ADDRESS_IN_RANGE/Use of uninitialised value of size 8 |
| ### Memcheck:Value8 |
| ### fun:_PyObject_Free |
| ###} |
| ### |
| ###{ |
| ### ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value |
| ### Memcheck:Cond |
| ### fun:_PyObject_Free |
| ###} |
| |
| ###{ |
| ### ADDRESS_IN_RANGE/Invalid read of size 4 |
| ### Memcheck:Addr4 |
| ### fun:_PyObject_Realloc |
| ###} |
| ### |
| ###{ |
| ### ADDRESS_IN_RANGE/Invalid read of size 4 |
| ### Memcheck:Value4 |
| ### fun:_PyObject_Realloc |
| ###} |
| ### |
| ###{ |
| ### ADDRESS_IN_RANGE/Use of uninitialised value of size 8 |
| ### Memcheck:Addr8 |
| ### fun:_PyObject_Realloc |
| ###} |
| ### |
| ###{ |
| ### ADDRESS_IN_RANGE/Use of uninitialised value of size 8 |
| ### Memcheck:Value8 |
| ### fun:_PyObject_Realloc |
| ###} |
| ### |
| ###{ |
| ### ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value |
| ### Memcheck:Cond |
| ### fun:_PyObject_Realloc |
| ###} |
| |
| ### |
| ### All the suppressions below are for errors that occur within libraries |
| ### that Python uses. The problems to not appear to be related to Python's |
| ### use of the libraries. |
| ### |
| |
| { |
| Generic ubuntu ld problems |
| Memcheck:Addr8 |
| obj:/lib/ld-2.4.so |
| obj:/lib/ld-2.4.so |
| obj:/lib/ld-2.4.so |
| obj:/lib/ld-2.4.so |
| } |
| |
| { |
| Generic gentoo ld problems |
| Memcheck:Cond |
| obj:/lib/ld-2.3.4.so |
| obj:/lib/ld-2.3.4.so |
| obj:/lib/ld-2.3.4.so |
| obj:/lib/ld-2.3.4.so |
| } |
| |
| { |
| DBM problems, see test_dbm |
| Memcheck:Param |
| write(buf) |
| fun:write |
| obj:/usr/lib/libdb1.so.2 |
| obj:/usr/lib/libdb1.so.2 |
| obj:/usr/lib/libdb1.so.2 |
| obj:/usr/lib/libdb1.so.2 |
| fun:dbm_close |
| } |
| |
| { |
| DBM problems, see test_dbm |
| Memcheck:Value8 |
| fun:memmove |
| obj:/usr/lib/libdb1.so.2 |
| obj:/usr/lib/libdb1.so.2 |
| obj:/usr/lib/libdb1.so.2 |
| obj:/usr/lib/libdb1.so.2 |
| fun:dbm_store |
| fun:dbm_ass_sub |
| } |
| |
| { |
| DBM problems, see test_dbm |
| Memcheck:Cond |
| obj:/usr/lib/libdb1.so.2 |
| obj:/usr/lib/libdb1.so.2 |
| obj:/usr/lib/libdb1.so.2 |
| fun:dbm_store |
| fun:dbm_ass_sub |
| } |
| |
| { |
| DBM problems, see test_dbm |
| Memcheck:Cond |
| fun:memmove |
| obj:/usr/lib/libdb1.so.2 |
| obj:/usr/lib/libdb1.so.2 |
| obj:/usr/lib/libdb1.so.2 |
| obj:/usr/lib/libdb1.so.2 |
| fun:dbm_store |
| fun:dbm_ass_sub |
| } |
| |
| { |
| GDBM problems, see test_gdbm |
| Memcheck:Param |
| write(buf) |
| fun:write |
| fun:gdbm_open |
| |
| } |
| |
| { |
| Uninitialised byte(s) false alarm, see bpo-35561 |
| Memcheck:Param |
| epoll_ctl(event) |
| fun:epoll_ctl |
| fun:pyepoll_internal_ctl |
| } |
| |
| { |
| ZLIB problems, see test_gzip |
| Memcheck:Cond |
| obj:/lib/libz.so.1.2.3 |
| obj:/lib/libz.so.1.2.3 |
| fun:deflate |
| } |
| |
| { |
| Avoid problems w/readline doing a putenv and leaking on exit |
| Memcheck:Leak |
| fun:malloc |
| fun:xmalloc |
| fun:sh_set_lines_and_columns |
| fun:_rl_get_screen_size |
| fun:_rl_init_terminal_io |
| obj:/lib/libreadline.so.4.3 |
| fun:rl_initialize |
| } |
| |
| # Valgrind emits "Conditional jump or move depends on uninitialised value(s)" |
| # false alarms on GCC builtin strcmp() function. The GCC code is correct. |
| # |
| # Valgrind bug: https://bugs.kde.org/show_bug.cgi?id=264936 |
| { |
| bpo-38118: Valgrind emits false alarm on GCC builtin strcmp() |
| Memcheck:Cond |
| fun:PyUnicode_Decode |
| } |
| |
| |
| ### |
| ### These occur from somewhere within the SSL, when running |
| ### test_socket_sll. They are too general to leave on by default. |
| ### |
| ###{ |
| ### somewhere in SSL stuff |
| ### Memcheck:Cond |
| ### fun:memset |
| ###} |
| ###{ |
| ### somewhere in SSL stuff |
| ### Memcheck:Value4 |
| ### fun:memset |
| ###} |
| ### |
| ###{ |
| ### somewhere in SSL stuff |
| ### Memcheck:Cond |
| ### fun:MD5_Update |
| ###} |
| ### |
| ###{ |
| ### somewhere in SSL stuff |
| ### Memcheck:Value4 |
| ### fun:MD5_Update |
| ###} |
| |
| # Fedora's package "openssl-1.0.1-0.1.beta2.fc17.x86_64" on x86_64 |
| # See http://bugs.python.org/issue14171 |
| { |
| openssl 1.0.1 prng 1 |
| Memcheck:Cond |
| fun:bcmp |
| fun:fips_get_entropy |
| fun:FIPS_drbg_instantiate |
| fun:RAND_init_fips |
| fun:OPENSSL_init_library |
| fun:SSL_library_init |
| fun:init_hashlib |
| } |
| |
| { |
| openssl 1.0.1 prng 2 |
| Memcheck:Cond |
| fun:fips_get_entropy |
| fun:FIPS_drbg_instantiate |
| fun:RAND_init_fips |
| fun:OPENSSL_init_library |
| fun:SSL_library_init |
| fun:init_hashlib |
| } |
| |
| { |
| openssl 1.0.1 prng 3 |
| Memcheck:Value8 |
| fun:_x86_64_AES_encrypt_compact |
| fun:AES_encrypt |
| } |
| |
| # |
| # All of these problems come from using test_socket_ssl |
| # |
| { |
| from test_socket_ssl |
| Memcheck:Cond |
| fun:BN_bin2bn |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Cond |
| fun:BN_num_bits_word |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Value4 |
| fun:BN_num_bits_word |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Cond |
| fun:BN_mod_exp_mont_word |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Cond |
| fun:BN_mod_exp_mont |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Param |
| write(buf) |
| fun:write |
| obj:/usr/lib/libcrypto.so.0.9.7 |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Cond |
| fun:RSA_verify |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Value4 |
| fun:RSA_verify |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Value4 |
| fun:DES_set_key_unchecked |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Value4 |
| fun:DES_encrypt2 |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Cond |
| obj:/usr/lib/libssl.so.0.9.7 |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Value4 |
| obj:/usr/lib/libssl.so.0.9.7 |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Cond |
| fun:BUF_MEM_grow_clean |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Cond |
| fun:memcpy |
| fun:ssl3_read_bytes |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Cond |
| fun:SHA1_Update |
| } |
| |
| { |
| from test_socket_ssl |
| Memcheck:Value4 |
| fun:SHA1_Update |
| } |
| |
| { |
| test_buffer_non_debug |
| Memcheck:Addr4 |
| fun:PyUnicodeUCS2_FSConverter |
| } |
| |
| { |
| test_buffer_non_debug |
| Memcheck:Addr4 |
| fun:PyUnicode_FSConverter |
| } |
| |
| { |
| wcscmp_false_positive |
| Memcheck:Addr8 |
| fun:wcscmp |
| fun:_PyOS_GetOpt |
| fun:Py_Main |
| fun:main |
| } |
| |
| # Additional suppressions for the unified decimal tests: |
| { |
| test_decimal |
| Memcheck:Addr4 |
| fun:PyUnicodeUCS2_FSConverter |
| } |
| |
| { |
| test_decimal2 |
| Memcheck:Addr4 |
| fun:PyUnicode_FSConverter |
| } |
| |