[evemu] fclose output only once

Peter Hutterer whot at fedoraproject.org
Wed Jan 30 23:06:16 UTC 2013


commit 9264f1bcc8ae7a0f7735976ecfbd1ceca4444ca6
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Thu Jan 31 09:10:08 2013 +1000

    fclose output only once

 0001-Don-t-segfault-when-not-using-stdout.patch |   44 +++++++++++++++++++++++
 evemu.spec                                      |    7 +++-
 2 files changed, 50 insertions(+), 1 deletions(-)
---
diff --git a/0001-Don-t-segfault-when-not-using-stdout.patch b/0001-Don-t-segfault-when-not-using-stdout.patch
new file mode 100644
index 0000000..7b057c9
--- /dev/null
+++ b/0001-Don-t-segfault-when-not-using-stdout.patch
@@ -0,0 +1,44 @@
+From 8c253b18369ed02b8fb282970e974cad4de7fab5 Mon Sep 17 00:00:00 2001
+From: Benjamin Tissoires <benjamin.tissoires at gmail.com>
+Date: Thu, 31 Jan 2013 09:07:54 +1000
+Subject: [PATCH] Don't segfault when not using stdout
+
+when using:
+$ evemu-record /dev/input/event21 record.txt
+
+And hitting Ctrl-C, the program segfault, because it tries to close two
+times the output file descriptor.
+
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+---
+ tools/evemu-record.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/tools/evemu-record.c b/tools/evemu-record.c
+index 6c5e98d..4417ae1 100644
+--- a/tools/evemu-record.c
++++ b/tools/evemu-record.c
+@@ -53,8 +53,10 @@ FILE *output;
+ static void handler (int sig __attribute__((unused)))
+ {
+ 	fflush(output);
+-	if (output != stdout)
++	if (output != stdout) {
+ 		fclose(output);
++                output = NULL;
++        }
+ }
+ 
+ int main(int argc, char *argv[])
+@@ -102,7 +104,7 @@ int main(int argc, char *argv[])
+ 		fprintf(stderr, "error: could not describe device\n");
+ 	}
+ 	close(fd);
+-	if (output != stdout)
++	if (output && output != stdout)
+ 		fclose(output);
+ 	return 0;
+ }
+-- 
+1.8.1
+
diff --git a/evemu.spec b/evemu.spec
index ab7d94a..92fe794 100644
--- a/evemu.spec
+++ b/evemu.spec
@@ -1,6 +1,6 @@
 Name:           evemu
 Version:        1.0.10
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Event Device Query and Emulation Program
 
 Group:          Development/Tools
@@ -12,6 +12,7 @@ Source0:        http://launchpad.net/%{name}/trunk/%{name}-%{version}/+download/
 # Fixed upstream in revno 60
 Patch01:        0001-tools-add-missing-evemu-event-man-page.patch
 Patch02:        test-for-device-grab.patch
+Patch03:        0001-Don-t-segfault-when-not-using-stdout.patch
 
 BuildRequires:  automake libtool
 BuildRequires:  python2-devel
@@ -41,6 +42,7 @@ Obsoletes:      utouch-evemu-devel < 1.0.10
 %setup -q
 %patch01 -p1
 %patch02 -p0
+%patch03 -p1
 
 %build
 autoreconf -v --install --force || exit 1
@@ -75,6 +77,9 @@ rm -f %{buildroot}%{_libdir}/*.la
 %{python_sitelib}/evemu/*
 
 %changelog
+* Thu Jan 31 2013 Peter Hutterer <peter.hutterer at redhat.com> 1.0.10-3
+- fclose output only once
+
 * Tue Jan 08 2013 Peter Hutterer <peter.hutterer at redhat.com> 1.0.10-2
 - Test for device grab in evemu-record
 


More information about the scm-commits mailing list