From 2649f215aecf923713d2f9a379cf651437ddf499 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Thu, 26 Jun 2008 03:26:57 +0000 Subject: open_transformer: fix bug of calling exit instead of _exit open_transformer: don't leak compressed descriptor anymore recursive_action: tiny shrink --- archival/libunarchive/open_transformer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'archival/libunarchive') diff --git a/archival/libunarchive/open_transformer.c b/archival/libunarchive/open_transformer.c index d0a2b7c..86415c7 100644 --- a/archival/libunarchive/open_transformer.c +++ b/archival/libunarchive/open_transformer.c @@ -40,7 +40,8 @@ int open_transformer(int src_fd, close(fd_pipe.wr); /* Send EOF */ close(src_fd); } - exit(EXIT_SUCCESS); + /* must be _exit! bug was actually seen here */ + _exit(EXIT_SUCCESS); #else { char *argv[4]; @@ -60,5 +61,7 @@ int open_transformer(int src_fd, /* parent process */ close(fd_pipe.wr); /* Don't want to write to the child */ - return fd_pipe.rd; +//TODO: get rid of return value (become void)? + xmove_fd(fd_pipe.rd, src_fd); + return src_fd; } -- cgit v1.1