aboutsummaryrefslogtreecommitdiff
path: root/archival
diff options
context:
space:
mode:
Diffstat (limited to 'archival')
-rw-r--r--archival/libunarchive/open_transformer.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/archival/libunarchive/open_transformer.c b/archival/libunarchive/open_transformer.c
index d0a2b7c36..86415c749 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;
}