tests: Fix some leaks and double-frees in the GSubprocess tests
[glib.git] / glib.supp
blobccfab67d6259f4482c2785dd0c0c932f6869d837
1 # GLib Valgrind suppressions file
3 # This provides a list of suppressions for all of GLib (including GIO), for all
4 # Valgrind tools (memcheck, drd, helgrind, etc.) for the false positives and
5 # deliberate one-time leaks which GLib causes to be reported when running under
6 # Valgrind.
8 # When running an application which links to GLib under Valgrind, you can pass
9 # this suppression file to Valgrind using --suppressions=/path/to/glib-2.0.supp.
11 # http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress
13 # Note that there is currently no way for Valgrind to load this automatically
14 # (https://bugs.kde.org/show_bug.cgi?id=160905), so the best GLib can currently
15 # do is to install this file as part of its development package.
17 # This file should be updated if GLib introduces a new deliberate one-time leak,
18 # or another false race positive in Valgrind: please file bugs at:
20 # https://bugzilla.gnome.org/enter_bug.cgi?product=glib
23         gnutls-init-calloc
24         Memcheck:Leak
25         fun:calloc
26         ...
27         fun:gtls_gnutls_init
31         gnutls-init-realloc
32         Memcheck:Leak
33         fun:realloc
34         ...
35         fun:gtls_gnutls_init
39         g-tls-backend-gnutls-init
40         Memcheck:Leak
41         fun:g_once_impl
42         fun:g_tls_backend_gnutls_init
46         p11-tokens-init
47         Memcheck:Leak
48         fun:calloc
49         ...
50         fun:create_tokens_inlock
51         fun:initialize_module_inlock_reentrant
55         gobject-init-malloc
56         Memcheck:Leak
57         fun:malloc
58         ...
59         fun:gobject_init_ctor
63         gobject-init-realloc
64         Memcheck:Leak
65         fun:realloc
66         ...
67         fun:gobject_init_ctor
71         gobject-init-calloc
72         Memcheck:Leak
73         fun:calloc
74         ...
75         fun:gobject_init_ctor
79         g-type-register-dynamic
80         Memcheck:Leak
81         fun:malloc
82         ...
83         fun:g_type_register_dynamic
87         g-type-register-static
88         Memcheck:Leak
89         fun:malloc
90         ...
91         fun:g_type_register_static
95         g-type-register-static-realloc
96         Memcheck:Leak
97         fun:realloc
98         ...
99         fun:g_type_register_static
103         g-type-register-static-calloc
104         Memcheck:Leak
105         fun:calloc
106         ...
107         fun:g_type_register_static
111         g-type-add-interface-dynamic
112         Memcheck:Leak
113         fun:malloc
114         ...
115         fun:g_type_add_interface_dynamic
119         g-type-add-interface-static
120         Memcheck:Leak
121         fun:malloc
122         ...
123         fun:g_type_add_interface_static
127         g-test-rand-init
128         Memcheck:Leak
129         fun:calloc
130         ...
131         fun:g_rand_new_with_seed_array
132         fun:test_run_seed
133         ...
134         fun:g_test_run
138         g-test-rand-init2
139         Memcheck:Leak
140         fun:calloc
141         ...
142         fun:g_rand_new_with_seed_array
143         ...
144         fun:get_global_random
145         ...
146         fun:g_test_init
150         g-quark-table-new
151         Memcheck:Leak
152         fun:g_hash_table_new
153         ...
154         fun:quark_new
158         g-quark-table-resize
159         Memcheck:Leak
160         fun:g_hash_table_resize
161         ...
162         fun:quark_new
166         g-type-interface-init
167         Memcheck:Leak
168         fun:malloc
169         ...
170         fun:type_iface_vtable_base_init_Wm
174         g-type-class-init
175         Memcheck:Leak
176         fun:calloc
177         ...
178         fun:type_class_init_Wm
182         g-io-module-default-singleton-malloc
183         Memcheck:Leak
184         fun:malloc
185         ...
186         fun:g_type_create_instance
187         ...
188         fun:_g_io_module_get_default
192         g-io-module-default-singleton-module
193         Memcheck:Leak
194         fun:calloc
195         ...
196         fun:g_module_open
197         ...
198         fun:_g_io_module_get_default
202         g-get-language-names
203         Memcheck:Leak
204         fun:malloc
205         ...
206         fun:g_get_language_names
210         g-static-mutex
211         Memcheck:Leak
212         fun:malloc
213         ...
214         fun:g_static_mutex_get_mutex_impl
218         g-system-thread-init
219         Memcheck:Leak
220         fun:calloc
221         ...
222         fun:g_system_thread_new
226         g-io-module-default-proxy-resolver-gnome
227         Memcheck:Leak
228         fun:calloc
229         ...
230         fun:g_proxy_resolver_gnome_init
231         ...
232         fun:_g_io_module_get_default
236         g-private-get
237         drd:ConflictingAccess
238         fun:g_private_get
241         g-private-get-helgrind
242         Helgrind:Race
243         fun:g_private_get
248         g-private-set
249         drd:ConflictingAccess
250         fun:g_private_set
253         g-private-set-helgrind
254         Helgrind:Race
255         fun:g_private_set
259         g-type-construct-free
260         drd:ConflictingAccess
261         fun:g_type_free_instance
264         g-type-construct-free-helgrind
265         Helgrind:Race
266         fun:g_type_free_instance
270         g-variant-unref
271         drd:ConflictingAccess
272         fun:g_variant_unref
275         g-variant-unref-helgrind
276         Helgrind:Race
277         fun:g_variant_unref
281         g-unix-signals-main
282         drd:ConflictingAccess
283         fun:_g_main_create_unix_signal_watch
286         g-unix-signals-dispatch
287         drd:ConflictingAccess
288         ...
289         fun:dispatch_unix_signals*
292         g-unix-signals-dispatch-helgrind
293         Helgrind:Race
294         ...
295         fun:dispatch_unix_signals*
298         g-unix-signals-other
299         drd:ConflictingAccess
300         fun:g_unix_signal_watch*
303         g-unix-signals-other-helgrind
304         Helgrind:Race
305         fun:g_unix_signal_watch*
308         g-unix-signals-handler
309         drd:ConflictingAccess
310         fun:g_unix_signal_handler*
313         g-unix-signals-handler-helgrind
314         Helgrind:Race
315         fun:g_unix_signal_handler*
318         g-unix-signals-worker
319         drd:ConflictingAccess
320         fun:glib_worker_main
323         g-unix-signals-worker-helgrind
324         Helgrind:Race
325         fun:glib_worker_main
329         g-wakeup-acknowledge
330         drd:ConflictingAccess
331         fun:read
332         fun:g_wakeup_acknowledge
336         g-type-fundamental
337         drd:ConflictingAccess
338         fun:g_type_fundamental
341         g-type-fundamental-helgrind
342         Helgrind:Race
343         fun:g_type_fundamental
346         g-type-class-peek-static
347         drd:ConflictingAccess
348         fun:g_type_class_peek_static
351         g-type-class-peek-static-helgrind
352         Helgrind:Race
353         fun:g_type_class_peek_static
356         g-type-is-a
357         drd:ConflictingAccess
358         ...
359         fun:g_type_is_a
362         g-type-is-a-helgrind
363         Helgrind:Race
364         ...
365         fun:g_type_is_a
369         g-inet-address-get-type
370         drd:ConflictingAccess
371         fun:g_inet_address_get_type
374         g-inet-address-get-type-helgrind
375         Helgrind:Race
376         fun:g_inet_address_get_type
379 # From: https://github.com/fredericgermain/valgrind/blob/master/glibc-2.X-drd.supp
381         drd-libc-stdio
382         drd:ConflictingAccess
383         obj:*/lib*/libc-*
386         drd-libc-recv
387         drd:ConflictingAccess
388         fun:recv
391         drd-libc-send
392         drd:ConflictingAccess
393         fun:send
396 # GSources do an opportunistic ref count check
398         g-source-set-ready-time
399         drd:ConflictingAccess
400         fun:g_source_set_ready_time
403         g-source-set-ready-time-helgrind
404         Helgrind:Race
405         fun:g_source_set_ready_time
409         g-source-iter-next
410         Helgrind:Race
411         fun:g_source_iter_next
412         fun:g_main_context_*
413         fun:g_main_context_iterate
417         g-object-instance-private
418         drd:ConflictingAccess
419         fun:*_get_instance_private
422         g-object-instance-private-helgrind
423         Helgrind:Race
424         fun:*_get_instance_private
427 # GLib legitimately calls pthread_cond_signal without a mutex held
429         g-task-thread-complete
430         drd:CondErr
431         ...
432         fun:g_cond_signal
433         fun:g_task_thread_complete
436         g-task-thread-complete
437         Helgrind:Misc
438         ...
439         fun:g_cond_signal
440         fun:g_task_thread_complete
443 # False positive, but I can't explain how (FIXME)
445         g-task-cond
446         Helgrind:Misc
447         ...
448         fun:g_cond_clear
449         fun:g_task_finalize
452 # Real race, but is_cancelled() is an opportunistic function anyway
454         g-cancellable-is-cancelled
455         Helgrind:Race
456         fun:g_cancellable_is_cancelled
459 # False positive
461         g-main-context-cond
462         Helgrind:Misc
463         ...
464         fun:g_cond_clear
465         fun:g_main_context_unref
468 # False positives
470         g-source-unlocked
471         Helgrind:Race
472         fun:g_source_*_unlocked
475         g-source-internal
476         Helgrind:Race
477         fun:g_source_*_internal
480 # False positive
482         g_object_real_dispose
483         Helgrind:Race
484         fun:g_object_real_dispose
487 # False positive
489         g_object_new_valist
490         Helgrind:Race
491         ...
492         fun:g_object_new_valist