blob: 2c68508f5cbc724e0f3759718157f60e5a1dc859 [file] [log] [blame]
# 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
}