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