Blame SOURCES/0001-vdagent-fix-memory-leak-of-g_memdup.patch

5de96c
From b6fde1641a47c13b151b20c8e0db03cf7da45d9f Mon Sep 17 00:00:00 2001
5de96c
From: Victor Toso <me@victortoso.com>
5de96c
Date: Fri, 12 Jul 2019 11:12:37 +0200
5de96c
Subject: [PATCH 1/9] vdagent: fix memory leak of g_memdup()
5de96c
5de96c
Found by covscan:
5de96c
5de96c
 | spice-vdagent-0.19.0/src/vdagent/vdagent.c:432:9: warning: Potential leak of memory pointed to by 'orig_argv'
5de96c
 | #        g_printerr("Invalid arguments, %s\n", error->message);
5de96c
 | #        ^
5de96c
 | spice-vdagent-0.19.0/src/vdagent/vdagent.c:418:24: note: Memory is allocated
5de96c
 | #    char **orig_argv = g_memdup(argv, sizeof(char*) * (argc+1));
5de96c
 | #                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5de96c
 | spice-vdagent-0.19.0/src/vdagent/vdagent.c:431:9: note: Assuming 'error' is not equal to NULL
5de96c
 | #    if (error != NULL) {
5de96c
 | #        ^~~~~~~~~~~~~
5de96c
 | spice-vdagent-0.19.0/src/vdagent/vdagent.c:431:5: note: Taking true branch
5de96c
 | #    if (error != NULL) {
5de96c
 | #    ^
5de96c
 | spice-vdagent-0.19.0/src/vdagent/vdagent.c:432:9: note: Potential leak of memory pointed to by 'orig_argv'
5de96c
 | #        g_printerr("Invalid arguments, %s\n", error->message);
5de96c
 | #        ^
5de96c
 | #  430|
5de96c
 | #  431|       if (error != NULL) {
5de96c
 | #  432|->         g_printerr("Invalid arguments, %s\n", error->message);
5de96c
 | #  433|           g_clear_error(&error);
5de96c
 | #  434|           return -1;
5de96c
5de96c
Signed-off-by: Victor Toso <victortoso@redhat.com>
5de96c
Acked-by: Frediano Ziglio <fziglio@redhat.com>
5de96c
---
5de96c
 src/vdagent/vdagent.c | 2 ++
5de96c
 1 file changed, 2 insertions(+)
5de96c
5de96c
diff --git a/src/vdagent/vdagent.c b/src/vdagent/vdagent.c
5de96c
index 13ef29f..d799d1f 100644
5de96c
--- a/src/vdagent/vdagent.c
5de96c
+++ b/src/vdagent/vdagent.c
5de96c
@@ -431,6 +431,7 @@ int main(int argc, char *argv[])
5de96c
     if (error != NULL) {
5de96c
         g_printerr("Invalid arguments, %s\n", error->message);
5de96c
         g_clear_error(&error);
5de96c
+        g_free(orig_argv);
5de96c
         return -1;
5de96c
     }
5de96c
 
5de96c
@@ -446,6 +447,7 @@ int main(int argc, char *argv[])
5de96c
 
5de96c
     if (!g_file_test(portdev, G_FILE_TEST_EXISTS)) {
5de96c
         g_debug("vdagent virtio channel %s does not exist, exiting", portdev);
5de96c
+        g_free(orig_argv);
5de96c
         return 0;
5de96c
     }
5de96c
 
5de96c
-- 
5de96c
2.21.0
5de96c