Code

textconv: stop leaking file descriptors
authorJeff King <peff@peff.net>
Wed, 30 Dec 2009 09:02:53 +0000 (04:02 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 30 Dec 2009 09:22:27 +0000 (01:22 -0800)
We read the output from textconv helpers over a pipe, but we
never actually closed our end of the pipe after using it.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff.c

diff --git a/diff.c b/diff.c
index 387d19fdedef650516ea9fd7679f48e3776a7616..69147b802f73203ab27352ac1b3513138fa50417 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -3485,11 +3485,13 @@ static char *run_textconv(const char *pgm, struct diff_filespec *spec,
        if (start_command(&child) != 0 ||
            strbuf_read(&buf, child.out, 0) < 0 ||
            finish_command(&child) != 0) {
+               close(child.out);
                if (temp.name == temp.tmp_path)
                        unlink(temp.name);
                error("error running textconv command '%s'", pgm);
                return NULL;
        }
+       close(child.out);
        if (temp.name == temp.tmp_path)
                unlink(temp.name);