Imported Upstream version 2.65.1
[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-get-language-names-malloc
426         Memcheck:Leak
427         match-leak-kinds:reachable
428         fun:malloc
429         ...
430         fun:g_get_language_names
431 }
432
433 {
434         g-get-language-names-calloc
435         Memcheck:Leak
436         match-leak-kinds:reachable
437         fun:calloc
438         ...
439         fun:g_get_language_names
440 }
441
442 {
443         g-get-language_names-with-category-malloc
444         Memcheck:Leak
445         match-leak-kinds:reachable
446         fun:malloc
447         ...
448         fun:g_get_language_names_with_category
449 }
450
451 {
452         g-get-language_names-with-category-calloc
453         Memcheck:Leak
454         match-leak-kinds:reachable
455         fun:calloc
456         ...
457         fun:g_get_language_names_with_category
458 }
459
460 {
461         g-get-language_names-with-category-realloc
462         Memcheck:Leak
463         match-leak-kinds:reachable
464         fun:realloc
465         ...
466         fun:g_get_language_names_with_category
467 }
468
469 {
470         g-static-mutex
471         Memcheck:Leak
472         match-leak-kinds:reachable
473         fun:malloc
474         ...
475         fun:g_static_mutex_get_mutex_impl
476 }
477
478 {
479         g-system-thread-init
480         Memcheck:Leak
481         match-leak-kinds:possible,reachable
482         fun:calloc
483         ...
484         fun:g_system_thread_new
485 }
486
487 {
488         g-task-thread-pool-init
489         Memcheck:Leak
490         match-leak-kinds:possible,reachable,definite
491         fun:malloc
492         ...
493         fun:g_thread_new
494         ...
495         fun:g_task_thread_pool_init
496 }
497
498 {
499         g-io-module-default-proxy-resolver-gnome
500         Memcheck:Leak
501         match-leak-kinds:reachable
502         fun:calloc
503         ...
504         fun:g_proxy_resolver_gnome_init
505         ...
506         fun:_g_io_module_get_default
507 }
508
509 # One-time getaddrinfo() configuration loading
510 {
511         g-threaded-resolver-getaddrinfo-config
512         Memcheck:Leak
513         match-leak-kinds:reachable,definite
514         fun:malloc
515         ...
516         fun:__resolv_conf_allocate
517         ...
518         fun:getaddrinfo
519         fun:do_lookup_by_name
520 }
521
522 # memcheck checks that the third argument to ioctl() is a valid pointer, but
523 # some ioctls use that argument as an integer
524 {
525         ioctl-with-non-pointer-param
526         Memcheck:Param
527         ioctl(generic)
528         fun:ioctl
529         fun:btrfs_reflink_with_progress
530 }
531
532 {
533         g-private-get
534         drd:ConflictingAccess
535         fun:g_private_get
536 }
537 {
538         g-private-get-helgrind
539         Helgrind:Race
540         fun:g_private_get
541 }
542
543
544 {
545         g-private-set
546         drd:ConflictingAccess
547         fun:g_private_set
548 }
549 {
550         g-private-set-helgrind
551         Helgrind:Race
552         fun:g_private_set
553 }
554
555 {
556         g-type-construct-free
557         drd:ConflictingAccess
558         fun:g_type_free_instance
559 }
560 {
561         g-type-construct-free-helgrind
562         Helgrind:Race
563         fun:g_type_free_instance
564 }
565
566 {
567         g-variant-unref
568         drd:ConflictingAccess
569         fun:g_variant_unref
570 }
571 {
572         g-variant-unref-helgrind
573         Helgrind:Race
574         fun:g_variant_unref
575 }
576
577 {
578         g-unix-signals-main
579         drd:ConflictingAccess
580         fun:_g_main_create_unix_signal_watch
581 }
582 {
583         g-unix-signals-dispatch
584         drd:ConflictingAccess
585         ...
586         fun:dispatch_unix_signals*
587 }
588 {
589         g-unix-signals-dispatch-helgrind
590         Helgrind:Race
591         ...
592         fun:dispatch_unix_signals*
593 }
594 {
595         g-unix-signals-other
596         drd:ConflictingAccess
597         fun:g_unix_signal_watch*
598 }
599 {
600         g-unix-signals-other-helgrind
601         Helgrind:Race
602         fun:g_unix_signal_watch*
603 }
604 {
605         g-unix-signals-handler
606         drd:ConflictingAccess
607         fun:g_unix_signal_handler*
608 }
609 {
610         g-unix-signals-handler-helgrind
611         Helgrind:Race
612         fun:g_unix_signal_handler*
613 }
614 {
615         g-unix-signals-worker
616         drd:ConflictingAccess
617         fun:glib_worker_main
618 }
619 {
620         g-unix-signals-worker-helgrind
621         Helgrind:Race
622         fun:glib_worker_main
623 }
624
625 {
626         g-wakeup-acknowledge
627         drd:ConflictingAccess
628         fun:read
629         fun:g_wakeup_acknowledge
630 }
631
632 {
633         g-type-fundamental
634         drd:ConflictingAccess
635         fun:g_type_fundamental
636 }
637 {
638         g-type-fundamental-helgrind
639         Helgrind:Race
640         fun:g_type_fundamental
641 }
642 {
643         g-type-class-peek-static
644         drd:ConflictingAccess
645         fun:g_type_class_peek_static
646 }
647 {
648         g-type-class-peek-static-helgrind
649         Helgrind:Race
650         fun:g_type_class_peek_static
651 }
652 {
653         g-type-is-a
654         drd:ConflictingAccess
655         ...
656         fun:g_type_is_a
657 }
658 {
659         g-type-is-a-helgrind
660         Helgrind:Race
661         ...
662         fun:g_type_is_a
663 }
664
665 {
666         g-inet-address-get-type
667         drd:ConflictingAccess
668         fun:g_inet_address_get_type
669 }
670 {
671         g-inet-address-get-type-helgrind
672         Helgrind:Race
673         fun:g_inet_address_get_type
674 }
675
676 # From: https://github.com/fredericgermain/valgrind/blob/master/glibc-2.X-drd.supp
677 {
678         drd-libc-stdio
679         drd:ConflictingAccess
680         obj:*/lib*/libc-*
681 }
682 {
683         drd-libc-recv
684         drd:ConflictingAccess
685         fun:recv
686 }
687 {
688         drd-libc-send
689         drd:ConflictingAccess
690         fun:send
691 }
692
693 # GSources do an opportunistic ref count check
694 {
695         g-source-set-ready-time
696         drd:ConflictingAccess
697         fun:g_source_set_ready_time
698 }
699 {
700         g-source-set-ready-time-helgrind
701         Helgrind:Race
702         fun:g_source_set_ready_time
703 }
704
705 {
706         g-source-iter-next
707         Helgrind:Race
708         fun:g_source_iter_next
709         fun:g_main_context_*
710         fun:g_main_context_iterate
711 }
712
713 {
714         g-object-instance-private
715         drd:ConflictingAccess
716         fun:*_get_instance_private
717 }
718 {
719         g-object-instance-private-helgrind
720         Helgrind:Race
721         fun:*_get_instance_private
722 }
723
724 # GLib legitimately calls pthread_cond_signal without a mutex held
725 {
726         g-task-thread-complete
727         drd:CondErr
728         ...
729         fun:g_cond_signal
730         fun:g_task_thread_complete
731 }
732 {
733         g-task-thread-complete
734         Helgrind:Misc
735         ...
736         fun:g_cond_signal
737         fun:g_task_thread_complete
738 }
739
740 # False positive, but I can't explain how (FIXME)
741 {
742         g-task-cond
743         Helgrind:Misc
744         ...
745         fun:g_cond_clear
746         fun:g_task_finalize
747 }
748
749 # Real race, but is_cancelled() is an opportunistic function anyway
750 {
751         g-cancellable-is-cancelled
752         Helgrind:Race
753         fun:g_cancellable_is_cancelled
754 }
755
756 # False positive
757 {
758         g-main-context-cond
759         Helgrind:Misc
760         ...
761         fun:g_cond_clear
762         fun:g_main_context_unref
763 }
764
765 # False positives
766 {
767         g-source-unlocked
768         Helgrind:Race
769         fun:g_source_*_unlocked
770 }
771 {
772         g-source-internal
773         Helgrind:Race
774         fun:g_source_*_internal
775 }
776
777 # False positive
778 {
779         g_object_real_dispose
780         Helgrind:Race
781         fun:g_object_real_dispose
782 }
783
784 # False positive
785 {
786         g_object_new_valist
787         Helgrind:Race
788         ...
789         fun:g_object_new_valist
790 }
791
792 # g_set_user_dirs() deliberately leaks the previous cached g_get_user_*() values.
793 # These will not all be reachable on exit.
794 {
795         g_set_user_dirs_str
796         Memcheck:Leak
797         match-leak-kinds:definite,reachable
798         fun:malloc
799         ...
800         fun:set_str_if_different
801         fun:g_set_user_dirs
802 }
803
804 # g_set_user_dirs() deliberately leaks the previous cached g_get_user_*() values.
805 # These will not all be reachable on exit.
806 {
807         g_set_user_dirs_strv
808         Memcheck:Leak
809         match-leak-kinds:definite,reachable
810         fun:malloc
811         ...
812         fun:set_strv_if_different
813         fun:g_set_user_dirs
814 }
815
816 # g_get_system_data_dirs() caches a one-time allocation
817 {
818         g_get_system_data_dirs
819         Memcheck:Leak
820         match-leak-kinds:reachable
821         fun:malloc
822         ...
823         fun:g_build_system_data_dirs
824         fun:g_get_system_data_dirs
825 }
826
827 # g_get_user_data_dir() caches a one-time allocation
828 {
829         g_get_user_data_dir
830         Memcheck:Leak
831         match-leak-kinds:reachable
832         fun:realloc
833         ...
834         fun:g_build_user_data_dir
835         fun:g_get_user_data_dir
836 }
837
838 # gdesktopappinfo.c caches a one-time allocation global table of @desktop_file_dirs.
839 {
840         desktop_file_dirs_malloc
841         Memcheck:Leak
842         match-leak-kinds:reachable
843         fun:malloc
844         ...
845         fun:desktop_file_dirs_lock
846 }
847
848 # gdesktopappinfo.c caches a one-time allocation global table of @desktop_file_dirs.
849 {
850         desktop_file_dirs_realloc
851         Memcheck:Leak
852         match-leak-kinds:reachable
853         fun:realloc
854         ...
855         fun:desktop_file_dirs_lock
856 }
857
858 # gdesktopappinfo.c caches a one-time allocation global table of @desktop_file_dirs.
859 {
860         desktop_file_dir_unindexed_setup_search
861         Memcheck:Leak
862         match-leak-kinds:reachable
863         fun:malloc
864         ...
865         fun:desktop_file_dir_unindexed_setup_search
866         fun:desktop_file_dir_unindexed_setup_search
867 }
868
869 # g_io_extension_point_register() caches a one-time allocation global table of @extension_points.
870 {
871         g_io_extension_point_register
872         Memcheck:Leak
873         match-leak-kinds:reachable
874         fun:calloc
875         ...
876         fun:g_io_extension_point_register
877 }
878
879 # g_strerror() caches a one-time allocation global table of @errors.
880 {
881         g_strerror
882         Memcheck:Leak
883         match-leak-kinds:reachable
884         fun:malloc
885         ...
886         fun:g_locale_to_utf8
887         fun:g_strerror
888 }
889
890 # g_socket_connection_factory_register_type() caches a one-time allocation global table of @connection_types.
891 {
892         g_socket_connection_factory_register_type
893         Memcheck:Leak
894         match-leak-kinds:reachable
895         fun:calloc
896         ...
897         fun:g_socket_connection_factory_register_type
898 }
899
900 # g_dbus_error_quark() never unregisters itself as a GDBusError domain, as it’s always available
901 {
902         g_dbus_error_quark
903         Memcheck:Leak
904         match-leak-kinds:reachable
905         fun:calloc
906         ...
907         fun:g_dbus_error_register_error_domain
908         fun:g_dbus_error_quark
909 }
910
911 # g_win32_registry_get_os_dirs_w*() caches an array of strings that is allocated only once.
912 {
913         g_win32_registry_get_os_dirs
914         Memcheck:Leak
915         match-leak-kinds:reachable,definite
916         fun:malloc
917         ...
918         fun:g_win32_registry_get_os_dirs*
919 }
920
921 # Thread-private data allocated once per thread
922 {
923         g_private_set_alloc0
924         Memcheck:Leak
925         match-leak-kinds:definite,reachable
926         fun:malloc
927         ...
928         fun:g_private_set_alloc0
929 }
930 {
931         g_private_set_alloc0-calloc
932         Memcheck:Leak
933         match-leak-kinds:definite,reachable
934         fun:calloc
935         ...
936         fun:g_private_set_alloc0
937 }
938
939 # Keys for thread-private data
940 {
941         g_private_key
942         Memcheck:Leak
943         match-leak-kinds:reachable
944         fun:malloc
945         fun:g_private_impl_new
946 }
947
948 # Thread-private GMainContext stack
949 {
950         g_main_context_push_thread_default
951         Memcheck:Leak
952         match-leak-kinds:definite,reachable
953         fun:malloc
954         ...
955         fun:g_queue_new
956         fun:g_main_context_push_thread_default
957 }
958
959 # One-time allocations for #GFileInfo attribute cache
960 {
961         g_file_info_attribute_cache
962         Memcheck:Leak
963         match-leak-kinds:reachable
964         fun:malloc
965         ...
966         fun:ensure_attribute_hash
967         ...
968         fun:g_file_*
969 }
970 {
971         g_file_info_attribute_cache2
972         Memcheck:Leak
973         match-leak-kinds:reachable
974         fun:calloc
975         ...
976         fun:ensure_attribute_hash
977         ...
978         fun:g_file_*
979 }
980 {
981         g_file_info_attribute_cache3
982         Memcheck:Leak
983         match-leak-kinds:reachable
984         fun:malloc
985         ...
986         fun:lookup_namespace
987         ...
988         fun:g_file_*
989 }
990 {
991         g_file_info_attribute_cache4
992         Memcheck:Leak
993         match-leak-kinds:reachable
994         fun:calloc
995         ...
996         fun:lookup_namespace
997         ...
998         fun:g_file_*
999 }
1000
1001 # Cached charset
1002 {
1003         g_get_charset
1004         Memcheck:Leak
1005         match-leak-kinds:reachable
1006         fun:malloc
1007         ...
1008         fun:g_get_charset
1009 }
1010
1011 {
1012         g_get_charset_calloc
1013         Memcheck:Leak
1014         match-leak-kinds:reachable
1015         fun:calloc
1016         ...
1017         fun:g_get_charset
1018 }
1019
1020 # Global unused thread queue
1021 {
1022         g_thread_pool_unused_thread_queue
1023         Memcheck:Leak
1024         match-leak-kinds:reachable
1025         fun:malloc
1026         ...
1027         fun:g_async_queue_new_full
1028         ...
1029         fun:g_thread_pool_new
1030 }
1031
1032 # One-time program name storage
1033 {
1034         g_set_prgname
1035         Memcheck:Leak
1036         match-leak-kinds:reachable
1037         fun:malloc
1038         ...
1039         fun:g_set_prgname
1040 }