[file-roller/gnome-3-16] Fix fr_application_command_line memory leak



commit 6022be011da8802eba04e5afdbb17fecd3267373
Author: David King <dking redhat com>
Date:   Thu Jul 16 10:38:55 2015 +0100

    Fix fr_application_command_line memory leak
    
    Found with Valgrind:
    
    ==9376== 44 (32 direct, 12 indirect) bytes in 1 blocks are definitely
    lost in loss record 8,792 of 17,916
    ==9376==    at 0x4C2BC50: malloc (in
    /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==9376==    by 0x748B689: g_malloc (gmem.c:97)
    ==9376==    by 0x74BAC72: g_variant_dup_bytestring_array
    (gvariant.c:1992)
    ==9376==    by 0x6F108B9: g_application_command_line_get_arguments
    (gapplicationcommandline.c:480)
    ==9376==    by 0x41C146: fr_application_command_line
    (fr-application.c:524)
    ==9376==    by 0xC750D2F: ffi_call_unix64 (in
    /usr/lib64/libffi.so.6.0.2)
    ==9376==    by 0xC75079A: ffi_call (in /usr/lib64/libffi.so.6.0.2)
    ==9376==    by 0x71FAB94: g_cclosure_marshal_generic_va
    (gclosure.c:1594)
    ==9376==    by 0x71FA0C3: _g_closure_invoke_va (gclosure.c:864)
    ==9376==    by 0x7213DD8: g_signal_emit_valist (gsignal.c:3246)
    ==9376==    by 0x72148F1: g_signal_emit (gsignal.c:3393)
    ==9376==    by 0x6F0CF82: g_application_call_command_line
    (gapplication.c:953)
    ==9376==    by 0x6F0F55F: g_application_run (gapplication.c:2292)
    ==9376==    by 0x414FE5: main (main.c:38)
    
    https://bugzilla.gnome.org/show_bug.cgi?id=752476

 src/fr-application.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
---
diff --git a/src/fr-application.c b/src/fr-application.c
index c54b615..b64d541 100644
--- a/src/fr-application.c
+++ b/src/fr-application.c
@@ -531,9 +531,11 @@ fr_application_command_line (GApplication            *application,
                g_critical ("Failed to parse arguments: %s", error->message);
                g_error_free (error);
                g_option_context_free (context);
+               g_strfreev (argv);
 
                return fr_application_command_line_finished (application, EXIT_FAILURE);
        }
+       g_strfreev (argv);
        g_option_context_free (context);
 
        if (remaining_args == NULL) { /* No archive specified. */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]