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