| # This is a real problem in the Solaris libc. It is caused by a read past the |
| # FILE structure. It's an intentional hack to differentiate between two file |
| # structures, FILE and xFILE. |
| { |
| Solaris:sprintf |
| Memcheck:Cond |
| fun:getxfdat |
| fun:_set_memstream |
| fun:sprintf |
| } |
| |
| # The same problem as above. |
| { |
| Solaris:snprintf |
| Memcheck:Cond |
| fun:getxfdat |
| fun:_set_memstream |
| fun:snprintf |
| } |
| |
| # The same problem as above. |
| { |
| Solaris:snprintf |
| Memcheck:Cond |
| fun:getxfdat |
| fun:_realbufend |
| fun:_ndoprnt |
| fun:snprintf |
| } |
| |
| # The same problem as above. |
| { |
| Solaris:vsnprintf |
| Memcheck:Cond |
| fun:getxfdat |
| fun:_set_memstream |
| fun:vsnprintf |
| } |
| |
| # The same problem as above. |
| { |
| Solaris:vsnprintf |
| Memcheck:Cond |
| fun:getxfdat |
| fun:_realbufend |
| fun:_ndoprnt |
| fun:vsnprintf |
| } |
| |
| #----------------------------------------------------------------------------# |
| # Solaris libc doesn't deallocate I/O buffers on program exit. |
| { |
| Solaris:file_buffer_malloc |
| Memcheck:Leak |
| fun:malloc |
| fun:_findbuf |
| obj:/lib/libc.so.1 |
| obj:/lib/libc.so.1 |
| } |
| |
| #----------------------------------------------------------------------------# |
| # Solaris libc doesn't deallocate netconfig list pointed to by netpp. |
| # This includes other allocated structures and strings contained there. |
| { |
| Solaris:setnetconfig-fgetnetconfig |
| Memcheck:Leak |
| match-leak-kinds: reachable |
| fun:calloc |
| fun:fgetnetconfig |
| fun:getnetlist |
| fun:setnetconfig |
| } |
| |
| # The same problem as above. |
| { |
| Solaris:setnetconfig-fgetnetconfig-getlookups-strdup |
| Memcheck:Leak |
| match-leak-kinds: reachable |
| fun:malloc |
| fun:strdup |
| fun:getlookups |
| fun:fgetnetconfig |
| fun:getnetlist |
| fun:setnetconfig |
| } |
| |
| # The same problem as above. |
| { |
| Solaris:setnetconfig-fgetnetconfig-getlookups-malloc |
| Memcheck:Leak |
| match-leak-kinds: reachable |
| fun:malloc |
| fun:getlookups |
| fun:fgetnetconfig |
| fun:getnetlist |
| fun:setnetconfig |
| } |
| |
| # The same problem as above. |
| { |
| Solaris:setnetconfig-fgetnetconfig-gettoken |
| Memcheck:Leak |
| match-leak-kinds: reachable |
| fun:malloc |
| fun:strdup |
| fun:gettoken |
| fun:fgetnetconfig |
| fun:getnetlist |
| fun:setnetconfig |
| } |
| |
| # The same problem as above. |
| { |
| Solaris:setnetconfig-getnetlist |
| Memcheck:Leak |
| match-leak-kinds: reachable |
| fun:malloc |
| fun:getnetlist |
| fun:setnetconfig |
| } |
| |
| #----------------------------------------------------------------------------# |
| # Solaris libc doesn't deallocate static strings netid_tcp_main |
| # and netid_tcp_udp allocated in __rpc_getconfip. |
| { |
| Solaris:__rpc_getconfip-netid_tcp+udp_main |
| Memcheck:Leak |
| match-leak-kinds: reachable |
| fun:malloc |
| fun:strdup |
| fun:__rpc_getconfip |
| } |
| |
| #----------------------------------------------------------------------------# |
| # Solaris libc doesn't deallocate global variable global_gt. |
| { |
| Solaris:dgettext |
| Memcheck:Leak |
| match-leak-kinds: reachable |
| fun:calloc |
| fun:dgettext |
| } |
| |
| #----------------------------------------------------------------------------# |
| # Solaris libc reinitializes mutex udp->ld_lock in the child's post-fork |
| # handler. |
| { |
| Solaris:postfork_child_mutex_reinit |
| drd:MutexErr |
| fun:mutex_init |
| fun:postfork1_child |
| fun:forkx |
| } |
| |
| #----------------------------------------------------------------------------# |
| # Solaris libc implements pthread barrier with a mutex and a condition |
| # variable. In pthread_barrier_wait(), the last thread returning with |
| # SERIAL_THREAD first unlocks the mutex and then broadcasts the condition |
| # variable. This is ok here because that mutex does not have any priorities |
| # associated, therefore no unpredicatble scheduling behaviour can occurr. |
| { |
| Solaris:pthread_barrier_wait |
| Helgrind:Misc |
| fun:pthread_cond_broadcast_WRK |
| fun:cond_broadcast |
| fun:pthread_barrier_wait |
| } |
| |