Peter Hutterer 9264f1b
From 8c253b18369ed02b8fb282970e974cad4de7fab5 Mon Sep 17 00:00:00 2001
Peter Hutterer 9264f1b
From: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Peter Hutterer 9264f1b
Date: Thu, 31 Jan 2013 09:07:54 +1000
Peter Hutterer 9264f1b
Subject: [PATCH] Don't segfault when not using stdout
Peter Hutterer 9264f1b
Peter Hutterer 9264f1b
when using:
Peter Hutterer 9264f1b
$ evemu-record /dev/input/event21 record.txt
Peter Hutterer 9264f1b
Peter Hutterer 9264f1b
And hitting Ctrl-C, the program segfault, because it tries to close two
Peter Hutterer 9264f1b
times the output file descriptor.
Peter Hutterer 9264f1b
Peter Hutterer 9264f1b
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Peter Hutterer 9264f1b
---
Peter Hutterer 9264f1b
 tools/evemu-record.c | 6 ++++--
Peter Hutterer 9264f1b
 1 file changed, 4 insertions(+), 2 deletions(-)
Peter Hutterer 9264f1b
Peter Hutterer 9264f1b
diff --git a/tools/evemu-record.c b/tools/evemu-record.c
Peter Hutterer 9264f1b
index 6c5e98d..4417ae1 100644
Peter Hutterer 9264f1b
--- a/tools/evemu-record.c
Peter Hutterer 9264f1b
+++ b/tools/evemu-record.c
Peter Hutterer 9264f1b
@@ -53,8 +53,10 @@ FILE *output;
Peter Hutterer 9264f1b
 static void handler (int sig __attribute__((unused)))
Peter Hutterer 9264f1b
 {
Peter Hutterer 9264f1b
 	fflush(output);
Peter Hutterer 9264f1b
-	if (output != stdout)
Peter Hutterer 9264f1b
+	if (output != stdout) {
Peter Hutterer 9264f1b
 		fclose(output);
Peter Hutterer 9264f1b
+                output = NULL;
Peter Hutterer 9264f1b
+        }
Peter Hutterer 9264f1b
 }
Peter Hutterer 9264f1b
 
Peter Hutterer 9264f1b
 int main(int argc, char *argv[])
Peter Hutterer 9264f1b
@@ -102,7 +104,7 @@ int main(int argc, char *argv[])
Peter Hutterer 9264f1b
 		fprintf(stderr, "error: could not describe device\n");
Peter Hutterer 9264f1b
 	}
Peter Hutterer 9264f1b
 	close(fd);
Peter Hutterer 9264f1b
-	if (output != stdout)
Peter Hutterer 9264f1b
+	if (output && output != stdout)
Peter Hutterer 9264f1b
 		fclose(output);
Peter Hutterer 9264f1b
 	return 0;
Peter Hutterer 9264f1b
 }
Peter Hutterer 9264f1b
-- 
Peter Hutterer 9264f1b
1.8.1
Peter Hutterer 9264f1b