[Spice-devel] [server PATCH 3/3] replay: do not use argv after g_option_context_parse

Uri Lublin uril at redhat.com
Thu Mar 3 09:58:52 UTC 2016


Apparently, after using g_option_context_parse with G_OPTION_REMAINING
argv is modified and should not be used.
This patch uses "file" instead of "argv" and makes sure
file is freed later.
No free is called upon error - exit takes care of it.
---
 server/tests/replay.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/server/tests/replay.c b/server/tests/replay.c
index 4fcbc3e..cfb8871 100644
--- a/server/tests/replay.c
+++ b/server/tests/replay.c
@@ -364,12 +364,12 @@ int main(int argc, char **argv)
     } else {
         fd = fopen(file[0], "r");
     }
-    g_strfreev(file);
-    file = NULL;
     if (fd == NULL) {
-        g_printerr("error opening %s\n", argv[1]);
-        return 1;
+        g_printerr("error opening %s\n", file[0]);
+        exit(1);
     }
+    g_strfreev(file);
+    file = NULL;
     if (fcntl(fileno(fd), FD_CLOEXEC) < 0) {
         perror("fcntl failed");
         exit(1);
-- 
2.5.0



More information about the Spice-devel mailing list