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