From: Ralf Habacker Date: Tue, 14 Apr 2015 08:01:49 +0000 (+0200) Subject: CID 54766: Resource leak (RESOURCE_LEAK). X-Git-Tag: dbus-1.9.16~59 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=54f92110f653965b791c8e38cba29582d99fba65;p=thirdparty%2Fdbus.git CID 54766: Resource leak (RESOURCE_LEAK). Variable original_argv going out of scope leaks the storage it points to. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=90021 Reviewed-by: Simon McVittie --- diff --git a/test/shell-test.c b/test/shell-test.c index d1dc5b5b6..87aa682db 100644 --- a/test/shell-test.c +++ b/test/shell-test.c @@ -52,6 +52,7 @@ test_command_line (const char *arg1, ...) if (!_dbus_shell_parse_argv (command_line, &shell_argc, &shell_argv, &error)) { fprintf (stderr, "Error parsing command line: %s\n", error.message ? error.message : ""); + dbus_free (original_argv); return FALSE; } else @@ -60,6 +61,7 @@ test_command_line (const char *arg1, ...) { printf ("Number of arguments returned (%d) don't match original (%d)\n", shell_argc, original_argc); + dbus_free (original_argv); return FALSE; } printf ("Number of arguments: %d\n", shell_argc); @@ -74,6 +76,7 @@ test_command_line (const char *arg1, ...) printf ("Position %d, returned argument (%s) does not match original (%s)\n", i, shell_argv[i], unquoted); dbus_free (unquoted); + dbus_free (original_argv); return FALSE; } dbus_free (unquoted); @@ -85,7 +88,8 @@ test_command_line (const char *arg1, ...) } _dbus_string_free (&str); - + dbus_free (original_argv); + return TRUE; }