Package: gummi
Version: 0.6.3-1.1
Severity: grave
Tags: patch
Justification: renders package unusable
Dear Maintainer,
using gummi for a prolonged time will eventually lead to a crash
possibly involving data loss if no more file descriptors are
available.
gummi uses g_spawn_async_with_pipes to spawn helper processes like
latex but fails to close the pipe connected to the spawned process
stdout. The documentation [0] clearly states:
The caller of g_spawn_async_with_pipes() must close these file
descriptors when they are no longer in use.
Attached is a patch that fixes this problem.
0:
http://developer.gnome.org/glib/2.32/glib-Spawning-Processes.html#g-spawn-async-with-pipes
-- System Information:
Debian Release: wheezy/sid
APT prefers testing
APT policy: (500, 'testing'), (350, 'unstable'), (300, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Description: Fix a file descriptor leak
utils_popen_r leaks file descriptors. Fix this by closing them.
.
gummi (0.6.3-1.1justus1) UNRELEASED; urgency=low
.
* Fixed file descriptor leak.
Author: Justus Winter <[email protected]>
--- gummi-0.6.3.orig/src/utils.c
+++ gummi-0.6.3/src/utils.c
@@ -250,6 +250,8 @@ Tuple2 utils_popen_r (const gchar* cmd,
g_free (rot);
}
+ close(pout);
+
#ifndef WIN32
// TODO: command is not available on win32 systems:
waitpid(typesetter_pid, &status, 0);