glib.supp 17 KB

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