Imported Upstream version 2.67.3
[platform/upstream/glib.git] / glib.supp
1 # GLib Valgrind suppressions file
2 #
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.
7 #
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.
10 #
11 # http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress
12 #
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.
16 #
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:
19 #
20 # https://gitlab.gnome.org/GNOME/glib/issues/new
21
22 {
23         gnutls-init-calloc
24         Memcheck:Leak
25         match-leak-kinds:reachable
26         fun:calloc
27         ...
28         fun:gtls_gnutls_init
29 }
30
31 {
32         gnutls-init-realloc
33         Memcheck:Leak
34         match-leak-kinds:reachable
35         fun:realloc
36         ...
37         fun:gtls_gnutls_init
38 }
39
40 {
41         g-tls-backend-gnutls-init
42         Memcheck:Leak
43         match-leak-kinds:reachable
44         fun:g_once_impl
45         fun:g_tls_backend_gnutls_init
46 }
47
48 {
49         p11-tokens-init
50         Memcheck:Leak
51         match-leak-kinds:reachable
52         fun:calloc
53         ...
54         fun:create_tokens_inlock
55         fun:initialize_module_inlock_reentrant
56 }
57
58 # One-time allocation from libc for getpwnam() results
59 {
60         g-local-vfs-getpwnam
61         Memcheck:Leak
62         match-leak-kinds:reachable
63         fun:malloc
64         ...
65         fun:getpwnam
66         fun:g_local_vfs_parse_name
67 }
68
69 {
70         glib-init-malloc
71         Memcheck:Leak
72         match-leak-kinds:reachable
73         fun:malloc
74         ...
75         fun:g_quark_init
76 }
77
78 {
79         glib-init-calloc
80         Memcheck:Leak
81         match-leak-kinds:reachable
82         fun:calloc
83         ...
84         fun:g_quark_init
85 }
86
87 {
88         gobject-init-malloc
89         Memcheck:Leak
90         match-leak-kinds:reachable
91         fun:malloc
92         ...
93         fun:gobject_init_ctor
94 }
95
96 {
97         gobject-init-realloc
98         Memcheck:Leak
99         match-leak-kinds:reachable
100         fun:realloc
101         ...
102         fun:gobject_init_ctor
103 }
104
105 {
106         gobject-init-calloc
107         Memcheck:Leak
108         match-leak-kinds:possible,reachable
109         fun:calloc
110         ...
111         fun:gobject_init_ctor
112 }
113
114 {
115         g-type-register-dynamic
116         Memcheck:Leak
117         match-leak-kinds:reachable
118         fun:malloc
119         ...
120         fun:g_type_register_dynamic
121 }
122
123 {
124         g-type-register-static
125         Memcheck:Leak
126         match-leak-kinds:possible,reachable
127         fun:malloc
128         ...
129         fun:g_type_register_static
130 }
131
132 {
133         g-type-register-static-realloc
134         Memcheck:Leak
135         match-leak-kinds:possible,reachable
136         fun:realloc
137         ...
138         fun:g_type_register_static
139 }
140
141 {
142         g-type-register-static-calloc
143         Memcheck:Leak
144         match-leak-kinds:possible,reachable
145         fun:calloc
146         ...
147         fun:g_type_register_static
148 }
149
150 {
151         g-type-register-fundamental
152         Memcheck:Leak
153         match-leak-kinds:possible,reachable
154         fun:malloc
155         ...
156         fun:g_type_register_fundamental
157 }
158
159 {
160         g-type-register-fundamental-calloc
161         Memcheck:Leak
162         match-leak-kinds:possible,reachable
163         fun:calloc
164         ...
165         fun:g_type_register_fundamental
166 }
167
168 {
169         g-type-add-interface-dynamic
170         Memcheck:Leak
171         match-leak-kinds:reachable
172         fun:malloc
173         ...
174         fun:g_type_add_interface_dynamic
175 }
176
177 {
178         g-type-add-interface-static
179         Memcheck:Leak
180         match-leak-kinds:reachable
181         fun:malloc
182         ...
183         fun:g_type_add_interface_static
184 }
185
186 {
187         g-type-add-interface-static-realloc
188         Memcheck:Leak
189         match-leak-kinds:reachable
190         fun:realloc
191         ...
192         fun:g_type_add_interface_static
193 }
194
195 {
196         g-type-add-interface-static-calloc
197         Memcheck:Leak
198         match-leak-kinds:reachable
199         fun:calloc
200         ...
201         fun:g_type_add_interface_static
202 }
203
204 {
205         g-test-rand-init
206         Memcheck:Leak
207         match-leak-kinds:reachable
208         fun:calloc
209         ...
210         fun:g_rand_new_with_seed_array
211         fun:test_run_seed
212         ...
213         fun:g_test_run
214 }
215
216 {
217         g-rand-init2
218         Memcheck:Leak
219         match-leak-kinds:reachable
220         fun:calloc
221         ...
222         fun:g_rand_new_with_seed_array
223         ...
224         fun:get_global_random
225 }
226
227 {
228         g-quark-table-new
229         Memcheck:Leak
230         match-leak-kinds:reachable
231         fun:g_hash_table_new
232         ...
233         fun:quark_new
234 }
235
236 {
237         g-quark-table-resize
238         Memcheck:Leak
239         match-leak-kinds:reachable
240         ...
241         fun:g_hash_table_resize
242         ...
243         fun:quark_new
244 }
245
246 {
247         g-type-interface-init
248         Memcheck:Leak
249         match-leak-kinds:reachable
250         fun:malloc
251         ...
252         fun:type_iface_vtable_base_init_Wm
253 }
254
255 {
256         g-type-class-init-calloc
257         Memcheck:Leak
258         match-leak-kinds:reachable
259         fun:calloc
260         ...
261         fun:type_class_init_Wm
262 }
263
264 {
265         g-type-class-init
266         Memcheck:Leak
267         match-leak-kinds:reachable
268         fun:g_type_create_instance
269         ...
270         fun:type_class_init_Wm
271 }
272
273 {
274         g-object-do-class-init-signals
275         Memcheck:Leak
276         match-leak-kinds:reachable
277         ...
278         fun:g_signal_new
279         ...
280         fun:type_class_init_Wm
281 }
282
283 {
284         g-type-prerequisites
285         Memcheck:Leak
286         match-leak-kinds:reachable
287         fun:realloc
288         ...
289         fun:type_iface_add_prerequisite_W
290 }
291
292 {
293         g-type-add-interface-check
294         Memcheck:Leak
295         match-leak-kinds:reachable
296         fun:malloc
297         ...
298         fun:g_type_add_interface_check
299         ...
300         fun:type_class_init_Wm
301 }
302
303 {
304         g-type-add-interface-check-realloc
305         Memcheck:Leak
306         match-leak-kinds:reachable
307         fun:realloc
308         ...
309         fun:g_type_add_interface_check
310         ...
311         fun:type_class_init_Wm
312 }
313
314 {
315         g-object-class-install-property
316         Memcheck:Leak
317         match-leak-kinds:reachable
318         fun:malloc
319         ...
320         fun:validate_and_install_class_property
321         ...
322         fun:type_class_init_Wm
323 }
324
325 {
326         g-param-spec-pool-new
327         Memcheck:Leak
328         match-leak-kinds:reachable
329         fun:malloc
330         ...
331         fun:g_param_spec_pool_new
332         ...
333         fun:type_class_init_Wm
334 }
335
336 # weak_locations_lock in gobject.c
337 {
338         g-weak-ref-lock
339         Memcheck:Leak
340         match-leak-kinds:reachable
341         fun:malloc
342         ...
343         fun:g_rw_lock_get_impl
344         ...
345         fun:g_weak_ref_set
346 }
347
348 {
349         g-object-base-class-init-construct-pproperties
350         Memcheck:Leak
351         match-leak-kinds:reachable
352         fun:malloc
353         ...
354         fun:g_slist_copy
355         fun:g_object_base_class_init
356         fun:type_class_init_Wm
357 }
358
359 {
360         g-type-class-ref
361         Memcheck:Leak
362         fun:calloc
363         ...
364         fun:type_class_init_Wm
365         ...
366         fun:g_type_class_ref
367 }
368
369 {
370         g-io-module-default-singleton-malloc
371         Memcheck:Leak
372         match-leak-kinds:reachable
373         fun:malloc
374         ...
375         fun:g_type_create_instance
376         ...
377         fun:_g_io_module_get_default
378 }
379
380 {
381         g-io-module-default-singleton-calloc
382         Memcheck:Leak
383         match-leak-kinds:reachable
384         fun:calloc
385         ...
386         fun:g_type_create_instance
387         ...
388         fun:_g_io_module_get_default
389 }
390
391 # This one seems to show up sometimes with g_type_create_instance() at the top
392 # of the stack, as well.
393 {
394         g-io-module-default-singleton
395         Memcheck:Leak
396         match-leak-kinds:reachable
397         fun:g_type_create_instance
398         ...
399         fun:_g_io_module_get_default
400 }
401
402 {
403         g-io-module-default-singleton-module
404         Memcheck:Leak
405         match-leak-kinds:reachable
406         fun:calloc
407         ...
408         fun:g_module_open
409         ...
410         fun:_g_io_module_get_default
411 }
412
413 {
414         g-io-module-default-singleton-name
415         Memcheck:Leak
416         match-leak-kinds:reachable
417         fun:malloc
418         ...
419         fun:g_strdup
420         ...
421         fun:_g_io_module_get_default*
422 }
423
424 {
425         g-io-module-default-singleton-weak-ref
426         Memcheck:Leak
427         fun:calloc
428         ...
429         fun:_g_io_module_get_default
430 }
431
432 {
433         g-get-language-names-malloc
434         Memcheck:Leak
435         match-leak-kinds:reachable
436         fun:malloc
437         ...
438         fun:g_get_language_names
439 }
440
441 {
442         g-get-language-names-calloc
443         Memcheck:Leak
444         match-leak-kinds:reachable
445         fun:calloc
446         ...
447         fun:g_get_language_names
448 }
449
450 {
451         g-get-language_names-with-category-malloc
452         Memcheck:Leak
453         match-leak-kinds:reachable
454         fun:malloc
455         ...
456         fun:g_get_language_names_with_category
457 }
458
459 {
460         g-get-language_names-with-category-calloc
461         Memcheck:Leak
462         match-leak-kinds:reachable
463         fun:calloc
464         ...
465         fun:g_get_language_names_with_category
466 }
467
468 {
469         g-get-language_names-with-category-realloc
470         Memcheck:Leak
471         match-leak-kinds:reachable
472         fun:realloc
473         ...
474         fun:g_get_language_names_with_category
475 }
476
477 {
478         g-static-mutex
479         Memcheck:Leak
480         match-leak-kinds:reachable
481         fun:malloc
482         ...
483         fun:g_static_mutex_get_mutex_impl
484 }
485
486 {
487         g-system-thread-init
488         Memcheck:Leak
489         match-leak-kinds:possible,reachable
490         fun:calloc
491         ...
492         fun:g_system_thread_new
493 }
494
495 {
496         g-task-thread-pool-init
497         Memcheck:Leak
498         match-leak-kinds:possible,reachable,definite
499         fun:malloc
500         ...
501         fun:g_thread_new
502         ...
503         fun:g_task_thread_pool_init
504 }
505
506 {
507         g-io-module-default-proxy-resolver-gnome
508         Memcheck:Leak
509         match-leak-kinds:reachable
510         fun:calloc
511         ...
512         fun:g_proxy_resolver_gnome_init
513         ...
514         fun:_g_io_module_get_default
515 }
516
517 # One-time getaddrinfo() configuration loading
518 {
519         g-threaded-resolver-getaddrinfo-config
520         Memcheck:Leak
521         match-leak-kinds:reachable,definite
522         fun:malloc
523         ...
524         fun:__resolv_conf_allocate
525         ...
526         fun:getaddrinfo
527         fun:do_lookup_by_name
528 }
529
530 # memcheck checks that the third argument to ioctl() is a valid pointer, but
531 # some ioctls use that argument as an integer
532 {
533         ioctl-with-non-pointer-param
534         Memcheck:Param
535         ioctl(generic)
536         fun:ioctl
537         fun:btrfs_reflink_with_progress
538 }
539
540 {
541         g-private-get
542         drd:ConflictingAccess
543         fun:g_private_get
544 }
545 {
546         g-private-get-helgrind
547         Helgrind:Race
548         fun:g_private_get
549 }
550
551
552 {
553         g-private-set
554         drd:ConflictingAccess
555         fun:g_private_set
556 }
557 {
558         g-private-set-helgrind
559         Helgrind:Race
560         fun:g_private_set
561 }
562
563 {
564         g-type-construct-free
565         drd:ConflictingAccess
566         fun:g_type_free_instance
567 }
568 {
569         g-type-construct-free-helgrind
570         Helgrind:Race
571         fun:g_type_free_instance
572 }
573
574 {
575         g-variant-unref
576         drd:ConflictingAccess
577         fun:g_variant_unref
578 }
579 {
580         g-variant-unref-helgrind
581         Helgrind:Race
582         fun:g_variant_unref
583 }
584
585 {
586         g-unix-signals-main
587         drd:ConflictingAccess
588         fun:_g_main_create_unix_signal_watch
589 }
590 {
591         g-unix-signals-dispatch
592         drd:ConflictingAccess
593         ...
594         fun:dispatch_unix_signals*
595 }
596 {
597         g-unix-signals-dispatch-helgrind
598         Helgrind:Race
599         ...
600         fun:dispatch_unix_signals*
601 }
602 {
603         g-unix-signals-other
604         drd:ConflictingAccess
605         fun:g_unix_signal_watch*
606 }
607 {
608         g-unix-signals-other-helgrind
609         Helgrind:Race
610         fun:g_unix_signal_watch*
611 }
612 {
613         g-unix-signals-handler
614         drd:ConflictingAccess
615         fun:g_unix_signal_handler*
616 }
617 {
618         g-unix-signals-handler-helgrind
619         Helgrind:Race
620         fun:g_unix_signal_handler*
621 }
622 {
623         g-unix-signals-worker
624         drd:ConflictingAccess
625         fun:glib_worker_main
626 }
627 {
628         g-unix-signals-worker-helgrind
629         Helgrind:Race
630         fun:glib_worker_main
631 }
632
633 {
634         g-wakeup-acknowledge
635         drd:ConflictingAccess
636         fun:read
637         fun:g_wakeup_acknowledge
638 }
639
640 {
641         g-type-fundamental
642         drd:ConflictingAccess
643         fun:g_type_fundamental
644 }
645 {
646         g-type-fundamental-helgrind
647         Helgrind:Race
648         fun:g_type_fundamental
649 }
650 {
651         g-type-class-peek-static
652         drd:ConflictingAccess
653         fun:g_type_class_peek_static
654 }
655 {
656         g-type-class-peek-static-helgrind
657         Helgrind:Race
658         fun:g_type_class_peek_static
659 }
660 {
661         g-type-is-a
662         drd:ConflictingAccess
663         ...
664         fun:g_type_is_a
665 }
666 {
667         g-type-is-a-helgrind
668         Helgrind:Race
669         ...
670         fun:g_type_is_a
671 }
672
673 {
674         g-inet-address-get-type
675         drd:ConflictingAccess
676         fun:g_inet_address_get_type
677 }
678 {
679         g-inet-address-get-type-helgrind
680         Helgrind:Race
681         fun:g_inet_address_get_type
682 }
683
684 # From: https://github.com/fredericgermain/valgrind/blob/master/glibc-2.X-drd.supp
685 {
686         drd-libc-stdio
687         drd:ConflictingAccess
688         obj:*/lib*/libc-*
689 }
690 {
691         drd-libc-recv
692         drd:ConflictingAccess
693         fun:recv
694 }
695 {
696         drd-libc-send
697         drd:ConflictingAccess
698         fun:send
699 }
700
701 # GSources do an opportunistic ref count check
702 {
703         g-source-set-ready-time
704         drd:ConflictingAccess
705         fun:g_source_set_ready_time
706 }
707 {
708         g-source-set-ready-time-helgrind
709         Helgrind:Race
710         fun:g_source_set_ready_time
711 }
712
713 {
714         g-source-iter-next
715         Helgrind:Race
716         fun:g_source_iter_next
717         fun:g_main_context_*
718         fun:g_main_context_iterate
719 }
720
721 {
722         g-object-instance-private
723         drd:ConflictingAccess
724         fun:*_get_instance_private
725 }
726 {
727         g-object-instance-private-helgrind
728         Helgrind:Race
729         fun:*_get_instance_private
730 }
731
732 # GLib legitimately calls pthread_cond_signal without a mutex held
733 {
734         g-task-thread-complete
735         drd:CondErr
736         ...
737         fun:g_cond_signal
738         fun:g_task_thread_complete
739 }
740 {
741         g-task-thread-complete
742         Helgrind:Misc
743         ...
744         fun:g_cond_signal
745         fun:g_task_thread_complete
746 }
747
748 # False positive, but I can't explain how (FIXME)
749 {
750         g-task-cond
751         Helgrind:Misc
752         ...
753         fun:g_cond_clear
754         fun:g_task_finalize
755 }
756
757 # Real race, but is_cancelled() is an opportunistic function anyway
758 {
759         g-cancellable-is-cancelled
760         Helgrind:Race
761         fun:g_cancellable_is_cancelled
762 }
763
764 # False positive
765 {
766         g-main-context-cond
767         Helgrind:Misc
768         ...
769         fun:g_cond_clear
770         fun:g_main_context_unref
771 }
772
773 # False positives
774 {
775         g-source-unlocked
776         Helgrind:Race
777         fun:g_source_*_unlocked
778 }
779 {
780         g-source-internal
781         Helgrind:Race
782         fun:g_source_*_internal
783 }
784
785 # False positive
786 {
787         g_object_real_dispose
788         Helgrind:Race
789         fun:g_object_real_dispose
790 }
791
792 # False positive
793 {
794         g_object_new_valist
795         Helgrind:Race
796         ...
797         fun:g_object_new_valist
798 }
799
800 # g_set_user_dirs() deliberately leaks the previous cached g_get_user_*() values.
801 # These will not all be reachable on exit.
802 {
803         g_set_user_dirs_str
804         Memcheck:Leak
805         match-leak-kinds:definite,reachable
806         fun:malloc
807         ...
808         fun:set_str_if_different
809         fun:g_set_user_dirs
810 }
811
812 # g_set_user_dirs() deliberately leaks the previous cached g_get_user_*() values.
813 # These will not all be reachable on exit.
814 {
815         g_set_user_dirs_strv
816         Memcheck:Leak
817         match-leak-kinds:definite,reachable
818         fun:malloc
819         ...
820         fun:set_strv_if_different
821         fun:g_set_user_dirs
822 }
823
824 # g_get_system_data_dirs() caches a one-time allocation
825 {
826         g_get_system_data_dirs
827         Memcheck:Leak
828         match-leak-kinds:reachable
829         fun:malloc
830         ...
831         fun:g_build_system_data_dirs
832         fun:g_get_system_data_dirs
833 }
834
835 # g_get_user_data_dir() caches a one-time allocation
836 {
837         g_get_user_data_dir
838         Memcheck:Leak
839         match-leak-kinds:reachable
840         fun:realloc
841         ...
842         fun:g_build_user_data_dir
843         fun:g_get_user_data_dir
844 }
845
846 # gdesktopappinfo.c caches a one-time allocation global table of @desktop_file_dirs.
847 {
848         desktop_file_dirs_malloc
849         Memcheck:Leak
850         match-leak-kinds:reachable
851         fun:malloc
852         ...
853         fun:desktop_file_dirs_lock
854 }
855
856 # gdesktopappinfo.c caches a one-time allocation global table of @desktop_file_dirs.
857 {
858         desktop_file_dirs_realloc
859         Memcheck:Leak
860         match-leak-kinds:reachable
861         fun:realloc
862         ...
863         fun:desktop_file_dirs_lock
864 }
865
866 # gdesktopappinfo.c caches a one-time allocation global table of @desktop_file_dirs.
867 {
868         desktop_file_dir_unindexed_setup_search
869         Memcheck:Leak
870         match-leak-kinds:reachable
871         fun:malloc
872         ...
873         fun:desktop_file_dir_unindexed_setup_search
874         fun:desktop_file_dir_unindexed_setup_search
875 }
876
877 # g_io_extension_point_register() caches a one-time allocation global table of @extension_points.
878 {
879         g_io_extension_point_register
880         Memcheck:Leak
881         match-leak-kinds:reachable
882         fun:calloc
883         ...
884         fun:g_io_extension_point_register
885 }
886
887 # g_strerror() caches a one-time allocation global table of @errors.
888 {
889         g_strerror
890         Memcheck:Leak
891         match-leak-kinds:reachable
892         fun:malloc
893         ...
894         fun:g_locale_to_utf8
895         fun:g_strerror
896 }
897
898 # g_socket_connection_factory_register_type() caches a one-time allocation global table of @connection_types.
899 {
900         g_socket_connection_factory_register_type
901         Memcheck:Leak
902         match-leak-kinds:reachable
903         fun:calloc
904         ...
905         fun:g_socket_connection_factory_register_type
906 }
907
908 # g_dbus_error_quark() never unregisters itself as a GDBusError domain, as it’s always available
909 {
910         g_dbus_error_quark
911         Memcheck:Leak
912         match-leak-kinds:reachable
913         fun:calloc
914         ...
915         fun:g_dbus_error_register_error_domain
916         fun:g_dbus_error_quark
917 }
918
919 # g_win32_registry_get_os_dirs_w*() caches an array of strings that is allocated only once.
920 {
921         g_win32_registry_get_os_dirs
922         Memcheck:Leak
923         match-leak-kinds:reachable,definite
924         fun:malloc
925         ...
926         fun:g_win32_registry_get_os_dirs*
927 }
928
929 # Thread-private data allocated once per thread
930 {
931         g_private_set_alloc0
932         Memcheck:Leak
933         match-leak-kinds:definite,reachable
934         fun:malloc
935         ...
936         fun:g_private_set_alloc0
937 }
938 {
939         g_private_set_alloc0-calloc
940         Memcheck:Leak
941         match-leak-kinds:definite,reachable
942         fun:calloc
943         ...
944         fun:g_private_set_alloc0
945 }
946
947 # Keys for thread-private data
948 {
949         g_private_key
950         Memcheck:Leak
951         match-leak-kinds:reachable
952         fun:malloc
953         fun:g_private_impl_new
954 }
955
956 # Thread-private GMainContext stack
957 {
958         g_main_context_push_thread_default
959         Memcheck:Leak
960         match-leak-kinds:definite,reachable
961         fun:malloc
962         ...
963         fun:g_queue_new
964         fun:g_main_context_push_thread_default
965 }
966
967 # One-time allocations for #GFileInfo attribute cache
968 {
969         g_file_info_attribute_cache
970         Memcheck:Leak
971         match-leak-kinds:reachable
972         fun:malloc
973         ...
974         fun:ensure_attribute_hash
975         ...
976         fun:g_file_*
977 }
978 {
979         g_file_info_attribute_cache2
980         Memcheck:Leak
981         match-leak-kinds:reachable
982         fun:calloc
983         ...
984         fun:ensure_attribute_hash
985         ...
986         fun:g_file_*
987 }
988 {
989         g_file_info_attribute_cache3
990         Memcheck:Leak
991         match-leak-kinds:reachable
992         fun:malloc
993         ...
994         fun:lookup_namespace
995         ...
996         fun:g_file_*
997 }
998 {
999         g_file_info_attribute_cache4
1000         Memcheck:Leak
1001         match-leak-kinds:reachable
1002         fun:calloc
1003         ...
1004         fun:lookup_namespace
1005         ...
1006         fun:g_file_*
1007 }
1008
1009 # Cached charset
1010 {
1011         g_get_charset
1012         Memcheck:Leak
1013         match-leak-kinds:reachable
1014         fun:malloc
1015         ...
1016         fun:g_get_charset
1017 }
1018
1019 {
1020         g_get_charset_calloc
1021         Memcheck:Leak
1022         match-leak-kinds:reachable
1023         fun:calloc
1024         ...
1025         fun:g_get_charset
1026 }
1027
1028 # Global unused thread queue
1029 {
1030         g_thread_pool_unused_thread_queue
1031         Memcheck:Leak
1032         match-leak-kinds:reachable
1033         fun:malloc
1034         ...
1035         fun:g_async_queue_new_full
1036         ...
1037         fun:g_thread_pool_new
1038 }
1039
1040 # One-time program name storage
1041 {
1042         g_set_prgname
1043         Memcheck:Leak
1044         match-leak-kinds:reachable
1045         fun:malloc
1046         ...
1047         fun:g_set_prgname
1048 }
1049
1050 # Error domains hash
1051 {
1052         g_error_init
1053         Memcheck:Leak
1054         match-leak-kinds: reachable
1055         fun:malloc
1056         ...
1057         fun:g_hash_table_new_full
1058         fun:g_error_init
1059 }
1060
1061 # Error domain static registration
1062 {
1063         g_error_domain_register_static
1064         Memcheck:Leak
1065         match-leak-kinds: reachable
1066         fun:malloc
1067         ...
1068         fun:g_hash_table_insert
1069         fun:error_domain_register
1070         fun:g_error_domain_register_static
1071 }
1072
1073 {
1074         new_quark
1075         Memcheck:Leak
1076         match-leak-kinds:reachable
1077         fun:malloc
1078         ...
1079         fun:g_hash_table_insert
1080         fun:quark_new
1081 }