Bug 601: When we fork an archiver and feed stuff to it through a pipe, if

we don't close the pipe the child process won't exit, and we'll hang in
waitpid().
This commit is contained in:
Rob Landley 2005-12-16 21:33:10 +00:00
parent ef1f7b5058
commit 1a78103306

View File

@ -513,11 +513,12 @@ static inline int writeTarFile(const int tar_fd, const int verboseFlag,
* but that isn't necessary for GNU tar interoperability, and
* so is considered a waste of space */
/* Close so the child process (if any) will exit */
close(tbInfo.tarFd);
/* Hang up the tools, close up shop, head home */
if (ENABLE_FEATURE_CLEAN_UP) {
close(tbInfo.tarFd);
if (ENABLE_FEATURE_CLEAN_UP)
freeHardLinkInfo(&tbInfo.hlInfoHead);
}
if (errorFlag)
bb_error_msg("Error exit delayed from previous errors");