Home | History | Annotate | Download | only in valgrind
      1 # This is a real problem in the Solaris libc. It is caused by a read past the
      2 # FILE structure. It's an intentional hack to differentiate between two file
      3 # structures, FILE and xFILE.
      4 {
      5    Solaris:sprintf
      6    Memcheck:Cond
      7    fun:getxfdat
      8    fun:_set_memstream
      9    fun:sprintf
     10 }
     11 
     12 # The same problem as above.
     13 {
     14    Solaris:snprintf
     15    Memcheck:Cond
     16    fun:getxfdat
     17    fun:_set_memstream
     18    fun:snprintf
     19 }
     20 
     21 # The same problem as above.
     22 {
     23    Solaris:snprintf
     24    Memcheck:Cond
     25    fun:getxfdat
     26    fun:_realbufend
     27    fun:_ndoprnt
     28    fun:snprintf
     29 }
     30 
     31 # The same problem as above.
     32 {
     33    Solaris:vsnprintf
     34    Memcheck:Cond
     35    fun:getxfdat
     36    fun:_set_memstream
     37    fun:vsnprintf
     38 }
     39 
     40 # The same problem as above.
     41 {
     42    Solaris:vsnprintf
     43    Memcheck:Cond
     44    fun:getxfdat
     45    fun:_realbufend
     46    fun:_ndoprnt
     47    fun:vsnprintf
     48 }
     49 
     50 #----------------------------------------------------------------------------#
     51 # Solaris libc doesn't deallocate I/O buffers on program exit.
     52 {
     53    Solaris:file_buffer_malloc
     54    Memcheck:Leak
     55    fun:malloc
     56    fun:_findbuf
     57    obj:/lib/libc.so.1
     58    obj:/lib/libc.so.1
     59 }
     60 
     61 #----------------------------------------------------------------------------#
     62 # Solaris libc doesn't deallocate netconfig list pointed to by netpp. 
     63 # This includes other allocated structures and strings contained there.
     64 {
     65    Solaris:setnetconfig-fgetnetconfig
     66    Memcheck:Leak
     67    match-leak-kinds: reachable
     68    fun:calloc
     69    fun:fgetnetconfig
     70    fun:getnetlist
     71    fun:setnetconfig
     72 }
     73 
     74 # The same problem as above.
     75 {
     76    Solaris:setnetconfig-fgetnetconfig-getlookups-strdup
     77    Memcheck:Leak
     78    match-leak-kinds: reachable
     79    fun:malloc
     80    fun:strdup
     81    fun:getlookups
     82    fun:fgetnetconfig
     83    fun:getnetlist
     84    fun:setnetconfig
     85 }
     86 
     87 # The same problem as above.
     88 {
     89    Solaris:setnetconfig-fgetnetconfig-getlookups-malloc
     90    Memcheck:Leak
     91    match-leak-kinds: reachable
     92    fun:malloc
     93    fun:getlookups
     94    fun:fgetnetconfig
     95    fun:getnetlist
     96    fun:setnetconfig
     97 }
     98 
     99 # The same problem as above.
    100 {
    101    Solaris:setnetconfig-fgetnetconfig-gettoken
    102    Memcheck:Leak
    103    match-leak-kinds: reachable
    104    fun:malloc
    105    fun:strdup
    106    fun:gettoken
    107    fun:fgetnetconfig
    108    fun:getnetlist
    109    fun:setnetconfig
    110 }
    111 
    112 # The same problem as above.
    113 {
    114    Solaris:setnetconfig-getnetlist
    115    Memcheck:Leak
    116    match-leak-kinds: reachable
    117    fun:malloc
    118    fun:getnetlist
    119    fun:setnetconfig
    120 }
    121 
    122 #----------------------------------------------------------------------------#
    123 # Solaris libc doesn't deallocate static strings netid_tcp_main
    124 # and netid_tcp_udp allocated in __rpc_getconfip.
    125 {
    126    Solaris:__rpc_getconfip-netid_tcp+udp_main
    127    Memcheck:Leak
    128    match-leak-kinds: reachable
    129    fun:malloc
    130    fun:strdup
    131    fun:__rpc_getconfip
    132 }
    133 
    134 #----------------------------------------------------------------------------#
    135 # Solaris libc doesn't deallocate global variable global_gt.
    136 {
    137    Solaris:dgettext
    138    Memcheck:Leak
    139    match-leak-kinds: reachable
    140    fun:calloc
    141    fun:dgettext
    142 }
    143 
    144 #----------------------------------------------------------------------------#
    145 # Solaris libc reinitializes mutex udp->ld_lock in the child's post-fork
    146 # handler.
    147 {
    148    Solaris:postfork_child_mutex_reinit
    149    drd:MutexErr
    150    fun:mutex_init
    151    fun:postfork1_child
    152    fun:forkx
    153 }
    154 
    155 #----------------------------------------------------------------------------#
    156 # Solaris libc implements pthread barrier with a mutex and a condition
    157 # variable. In pthread_barrier_wait(), the last thread returning with
    158 # SERIAL_THREAD first unlocks the mutex and then broadcasts the condition
    159 # variable. This is ok here because that mutex does not have any priorities
    160 # associated, therefore no unpredicatble scheduling behaviour can occurr.
    161 {
    162    Solaris:pthread_barrier_wait
    163    Helgrind:Misc
    164    fun:pthread_cond_broadcast_WRK
    165    fun:cond_broadcast
    166    fun:pthread_barrier_wait
    167 }
    168 
    169