Merge branch 'coverity' into 'master'
[glib.git] / glib.supp
blobf64826b3c19886a9b6f1ff568a145fbdf9a3816d
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://gitlab.gnome.org/GNOME/glib/issues/new
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
54 # One-time allocation from libc for getpwnam() results
56         g-local-vfs-getpwnam
57         Memcheck:Leak
58         fun:malloc
59         ...
60         fun:getpwnam
61         fun:g_local_vfs_parse_name
65         gobject-init-malloc
66         Memcheck:Leak
67         fun:malloc
68         ...
69         fun:gobject_init_ctor
73         gobject-init-realloc
74         Memcheck:Leak
75         fun:realloc
76         ...
77         fun:gobject_init_ctor
81         gobject-init-calloc
82         Memcheck:Leak
83         fun:calloc
84         ...
85         fun:gobject_init_ctor
89         g-type-register-dynamic
90         Memcheck:Leak
91         fun:malloc
92         ...
93         fun:g_type_register_dynamic
97         g-type-register-static
98         Memcheck:Leak
99         fun:malloc
100         ...
101         fun:g_type_register_static
105         g-type-register-static-realloc
106         Memcheck:Leak
107         fun:realloc
108         ...
109         fun:g_type_register_static
113         g-type-register-static-calloc
114         Memcheck:Leak
115         fun:calloc
116         ...
117         fun:g_type_register_static
121         g-type-add-interface-dynamic
122         Memcheck:Leak
123         fun:malloc
124         ...
125         fun:g_type_add_interface_dynamic
129         g-type-add-interface-static
130         Memcheck:Leak
131         fun:malloc
132         ...
133         fun:g_type_add_interface_static
137         g-test-rand-init
138         Memcheck:Leak
139         fun:calloc
140         ...
141         fun:g_rand_new_with_seed_array
142         fun:test_run_seed
143         ...
144         fun:g_test_run
148         g-test-rand-init2
149         Memcheck:Leak
150         fun:calloc
151         ...
152         fun:g_rand_new_with_seed_array
153         ...
154         fun:get_global_random
155         ...
156         fun:g_test_init
160         g-quark-table-new
161         Memcheck:Leak
162         fun:g_hash_table_new
163         ...
164         fun:quark_new
168         g-quark-table-resize
169         Memcheck:Leak
170         fun:g_hash_table_resize
171         ...
172         fun:quark_new
176         g-type-interface-init
177         Memcheck:Leak
178         fun:malloc
179         ...
180         fun:type_iface_vtable_base_init_Wm
184         g-type-class-init
185         Memcheck:Leak
186         fun:calloc
187         ...
188         fun:type_class_init_Wm
192         g-io-module-default-singleton-malloc
193         Memcheck:Leak
194         fun:malloc
195         ...
196         fun:g_type_create_instance
197         ...
198         fun:_g_io_module_get_default
202         g-io-module-default-singleton-module
203         Memcheck:Leak
204         fun:calloc
205         ...
206         fun:g_module_open
207         ...
208         fun:_g_io_module_get_default
212         g-get-language-names
213         Memcheck:Leak
214         fun:malloc
215         ...
216         fun:g_get_language_names
220         g-static-mutex
221         Memcheck:Leak
222         fun:malloc
223         ...
224         fun:g_static_mutex_get_mutex_impl
228         g-system-thread-init
229         Memcheck:Leak
230         fun:calloc
231         ...
232         fun:g_system_thread_new
236         g-io-module-default-proxy-resolver-gnome
237         Memcheck:Leak
238         fun:calloc
239         ...
240         fun:g_proxy_resolver_gnome_init
241         ...
242         fun:_g_io_module_get_default
245 # One-time getaddrinfo() configuration loading
247         g-threaded-resolver-getaddrinfo-config
248         Memcheck:Leak
249         fun:malloc
250         ...
251         fun:__resolv_conf_allocate
252         ...
253         fun:getaddrinfo
254         fun:do_lookup_by_name
257 # memcheck checks that the third argument to ioctl() is a valid pointer, but
258 # some ioctls use that argument as an integer
260    ioctl-with-non-pointer-param
261    Memcheck:Param
262    ioctl(generic)
263    fun:ioctl
264    fun:btrfs_reflink_with_progress
268         g-private-get
269         drd:ConflictingAccess
270         fun:g_private_get
273         g-private-get-helgrind
274         Helgrind:Race
275         fun:g_private_get
280         g-private-set
281         drd:ConflictingAccess
282         fun:g_private_set
285         g-private-set-helgrind
286         Helgrind:Race
287         fun:g_private_set
291         g-type-construct-free
292         drd:ConflictingAccess
293         fun:g_type_free_instance
296         g-type-construct-free-helgrind
297         Helgrind:Race
298         fun:g_type_free_instance
302         g-variant-unref
303         drd:ConflictingAccess
304         fun:g_variant_unref
307         g-variant-unref-helgrind
308         Helgrind:Race
309         fun:g_variant_unref
313         g-unix-signals-main
314         drd:ConflictingAccess
315         fun:_g_main_create_unix_signal_watch
318         g-unix-signals-dispatch
319         drd:ConflictingAccess
320         ...
321         fun:dispatch_unix_signals*
324         g-unix-signals-dispatch-helgrind
325         Helgrind:Race
326         ...
327         fun:dispatch_unix_signals*
330         g-unix-signals-other
331         drd:ConflictingAccess
332         fun:g_unix_signal_watch*
335         g-unix-signals-other-helgrind
336         Helgrind:Race
337         fun:g_unix_signal_watch*
340         g-unix-signals-handler
341         drd:ConflictingAccess
342         fun:g_unix_signal_handler*
345         g-unix-signals-handler-helgrind
346         Helgrind:Race
347         fun:g_unix_signal_handler*
350         g-unix-signals-worker
351         drd:ConflictingAccess
352         fun:glib_worker_main
355         g-unix-signals-worker-helgrind
356         Helgrind:Race
357         fun:glib_worker_main
361         g-wakeup-acknowledge
362         drd:ConflictingAccess
363         fun:read
364         fun:g_wakeup_acknowledge
368         g-type-fundamental
369         drd:ConflictingAccess
370         fun:g_type_fundamental
373         g-type-fundamental-helgrind
374         Helgrind:Race
375         fun:g_type_fundamental
378         g-type-class-peek-static
379         drd:ConflictingAccess
380         fun:g_type_class_peek_static
383         g-type-class-peek-static-helgrind
384         Helgrind:Race
385         fun:g_type_class_peek_static
388         g-type-is-a
389         drd:ConflictingAccess
390         ...
391         fun:g_type_is_a
394         g-type-is-a-helgrind
395         Helgrind:Race
396         ...
397         fun:g_type_is_a
401         g-inet-address-get-type
402         drd:ConflictingAccess
403         fun:g_inet_address_get_type
406         g-inet-address-get-type-helgrind
407         Helgrind:Race
408         fun:g_inet_address_get_type
411 # From: https://github.com/fredericgermain/valgrind/blob/master/glibc-2.X-drd.supp
413         drd-libc-stdio
414         drd:ConflictingAccess
415         obj:*/lib*/libc-*
418         drd-libc-recv
419         drd:ConflictingAccess
420         fun:recv
423         drd-libc-send
424         drd:ConflictingAccess
425         fun:send
428 # GSources do an opportunistic ref count check
430         g-source-set-ready-time
431         drd:ConflictingAccess
432         fun:g_source_set_ready_time
435         g-source-set-ready-time-helgrind
436         Helgrind:Race
437         fun:g_source_set_ready_time
441         g-source-iter-next
442         Helgrind:Race
443         fun:g_source_iter_next
444         fun:g_main_context_*
445         fun:g_main_context_iterate
449         g-object-instance-private
450         drd:ConflictingAccess
451         fun:*_get_instance_private
454         g-object-instance-private-helgrind
455         Helgrind:Race
456         fun:*_get_instance_private
459 # GLib legitimately calls pthread_cond_signal without a mutex held
461         g-task-thread-complete
462         drd:CondErr
463         ...
464         fun:g_cond_signal
465         fun:g_task_thread_complete
468         g-task-thread-complete
469         Helgrind:Misc
470         ...
471         fun:g_cond_signal
472         fun:g_task_thread_complete
475 # False positive, but I can't explain how (FIXME)
477         g-task-cond
478         Helgrind:Misc
479         ...
480         fun:g_cond_clear
481         fun:g_task_finalize
484 # Real race, but is_cancelled() is an opportunistic function anyway
486         g-cancellable-is-cancelled
487         Helgrind:Race
488         fun:g_cancellable_is_cancelled
491 # False positive
493         g-main-context-cond
494         Helgrind:Misc
495         ...
496         fun:g_cond_clear
497         fun:g_main_context_unref
500 # False positives
502         g-source-unlocked
503         Helgrind:Race
504         fun:g_source_*_unlocked
507         g-source-internal
508         Helgrind:Race
509         fun:g_source_*_internal
512 # False positive
514         g_object_real_dispose
515         Helgrind:Race
516         fun:g_object_real_dispose
519 # False positive
521         g_object_new_valist
522         Helgrind:Race
523         ...
524         fun:g_object_new_valist