diff options
Diffstat (limited to 'archival')
-rw-r--r-- | archival/libunarchive/open_transformer.c | 7 |
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; } |