fix memory leaks in gplugin_file_source

Review Request #2255 — Created Feb. 20, 2023 and submitted

Information

gplugin/gplugin
default

Reviewers

fix memory leaks in gplugin_file_source

leaks encountered:

libpurple test_contact_info and test_person

==5998== 16 bytes in 1 blocks are definitely lost in loss record 1,996 of 6,277
==5998==    at 0x48417E4: malloc (vg_replace_malloc.c:393)
==5998==    by 0x4A6FA18: g_malloc (in /usr/lib64/libglib-2.0.so.0.7400.4)
==5998==    by 0x4A88540: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.7400.4)
==5998==    by 0x4A89675: g_slist_prepend (in /usr/lib64/libglib-2.0.so.0.7400.4)
==5998==    by 0x4F0DA9E: gplugin_file_source_add_loader (gplugin-file-source.c:112)
==5998==    by 0x4F0DCF1: gplugin_file_source_update_loaders (gplugin-file-source.c:179)
==5998==    by 0x4F0E971: gplugin_file_source_constructed (gplugin-file-source.c:524)
==5998==    by 0x49CF002: ??? (in /usr/lib64/libgobject-2.0.so.0.7400.4)
==5998==    by 0x49D0C33: g_object_new_valist (in /usr/lib64/libgobject-2.0.so.0.7400.4)
==5998==    by 0x49D1250: g_object_new (in /usr/lib64/libgobject-2.0.so.0.7400.4)
==5998==    by 0x4F0EC51: gplugin_file_source_new (gplugin-file-source.c:607)
==5998==    by 0x4F08019: gplugin_manager_refresh (gplugin-manager.c:874)

gplugin tests

==23357== 456 (16 direct, 440 indirect) bytes in 1 blocks are definitely lost in loss record 535 of 557
==23357==    at 0x48417E4: malloc (vg_replace_malloc.c:393)
==23357==    by 0x48E4828: g_malloc (in /usr/lib64/libglib-2.0.so.0.7400.5)
==23357==    by 0x48FD281: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.7400.5)
==23357==    by 0x48FE6A8: g_slist_copy_deep (in /usr/lib64/libglib-2.0.so.0.7400.5)
==23357==    by 0x485B252: gplugin_manager_find_plugins (gplugin-manager.c:934)
==23357==    by 0x4861216: gplugin_file_source_scan (gplugin-file-source.c:349)
==23357==    by 0x48622A9: gplugin_source_scan (gplugin-source.c:66)
==23357==    by 0x485B041: gplugin_manager_refresh (gplugin-manager.c:881)
==23357==    by 0x109464: test_gplugin_init_uninit_with_double_refresh_plugins (test-core.c:115)
==23357==    by 0x49079DD: ??? (in /usr/lib64/libglib-2.0.so.0.7400.5)
==23357==    by 0x490774C: ??? (in /usr/lib64/libglib-2.0.so.0.7400.5)
==23357==    by 0x4907EE1: g_test_run_suite (in /usr/lib64/libglib-2.0.so.0.7400.5)

Ran all gplugin tests and test_contact_info and test_person from libpurple in valgrind without encountering above leaks or any invalid reads/writes.

Summary ID
fix memory leaks in gplugin_file_source
d2f1391f0a56f054d54cc0dfe727fb58203e54c5
Description From Last Updated

every function is full namespaced in gplugin, so this should be something like gplugin_file_source_slist_unref.

grimgrim
grim
  1. 
      
  2. gplugin/gplugin-file-source.c (Diff revision 1)
     
     
    Show all issues

    every function is full namespaced in gplugin, so this should be something like gplugin_file_source_slist_unref.

  3. 
      
ivanhoe
grim
  1. Ship It!
  2. Great work! Thanks!!

  3. 
      
grim
Review request changed
Status:
Completed