[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