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 <teyth...@thinkbox.jade-hamburg.de>
--- 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);

Reply via email to