Home | History | Annotate | Download | only in Misc
      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 -tt ./Lib/test/regrtest.py -u bsddb,network
      9 #
     10 # You must edit Objects/obmalloc.c and uncomment Py_USING_MEMORY_DEBUGGER
     11 # to use the preferred suppressions with Py_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:Py_ADDRESS_IN_RANGE
     23 }
     24 
     25 {
     26    ADDRESS_IN_RANGE/Invalid read of size 4
     27    Memcheck:Value4
     28    fun:Py_ADDRESS_IN_RANGE
     29 }
     30 
     31 {
     32    ADDRESS_IN_RANGE/Invalid read of size 8 (x86_64 aka amd64)
     33    Memcheck:Value8
     34    fun:Py_ADDRESS_IN_RANGE
     35 }
     36 
     37 {
     38    ADDRESS_IN_RANGE/Conditional jump or move depends on uninitialised value
     39    Memcheck:Cond
     40    fun:Py_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 #
    314 # All of these problems come from using test_socket_ssl
    315 #
    316 {
    317    from test_socket_ssl
    318    Memcheck:Cond
    319    fun:BN_bin2bn
    320 }
    321 
    322 {
    323    from test_socket_ssl
    324    Memcheck:Cond
    325    fun:BN_num_bits_word
    326 }
    327 
    328 {
    329    from test_socket_ssl
    330    Memcheck:Value4
    331    fun:BN_num_bits_word
    332 }
    333 
    334 {
    335    from test_socket_ssl
    336    Memcheck:Cond
    337    fun:BN_mod_exp_mont_word
    338 }
    339 
    340 {
    341    from test_socket_ssl
    342    Memcheck:Cond
    343    fun:BN_mod_exp_mont
    344 }
    345 
    346 {
    347    from test_socket_ssl
    348    Memcheck:Param
    349    write(buf)
    350    fun:write
    351    obj:/usr/lib/libcrypto.so.0.9.7
    352 }
    353 
    354 {
    355    from test_socket_ssl
    356    Memcheck:Cond
    357    fun:RSA_verify
    358 }
    359 
    360 {
    361    from test_socket_ssl
    362    Memcheck:Value4
    363    fun:RSA_verify
    364 }
    365 
    366 {
    367    from test_socket_ssl
    368    Memcheck:Value4
    369    fun:DES_set_key_unchecked
    370 }
    371 
    372 {
    373    from test_socket_ssl
    374    Memcheck:Value4
    375    fun:DES_encrypt2
    376 }
    377 
    378 {
    379    from test_socket_ssl
    380    Memcheck:Cond
    381    obj:/usr/lib/libssl.so.0.9.7
    382 }
    383 
    384 {
    385    from test_socket_ssl
    386    Memcheck:Value4
    387    obj:/usr/lib/libssl.so.0.9.7
    388 }
    389 
    390 {
    391    from test_socket_ssl
    392    Memcheck:Cond
    393    fun:BUF_MEM_grow_clean
    394 }
    395 
    396 {
    397    from test_socket_ssl
    398    Memcheck:Cond
    399    fun:memcpy
    400    fun:ssl3_read_bytes
    401 }
    402 
    403 {
    404    from test_socket_ssl
    405    Memcheck:Cond
    406    fun:SHA1_Update
    407 }
    408 
    409 {
    410    from test_socket_ssl
    411    Memcheck:Value4
    412    fun:SHA1_Update
    413 }
    414 
    415 
    416