diff options
author | Eric Andersen | 2000-06-09 20:51:50 +0000 |
---|---|---|
committer | Eric Andersen | 2000-06-09 20:51:50 +0000 |
commit | 0c6a970eb26edf7e77e7c173d478b94100969fc4 (patch) | |
tree | 2c26d1f87e2a4c9e3a47a3980a29dfa4667fb613 /tar.c | |
parent | b3d235f63b11effbc88d07ec812f90dbb3f4b798 (diff) | |
download | busybox-0c6a970eb26edf7e77e7c173d478b94100969fc4.zip busybox-0c6a970eb26edf7e77e7c173d478b94100969fc4.tar.gz |
* Fixed a small bug that could cause tar to emit warning messages
and not extract the first file in a directory in some cases
of nested directories. Thanks to Kevin Traas <kevin@netmaster.com>
for helping track this one down.
-Erik
Diffstat (limited to 'tar.c')
-rw-r--r-- | tar.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -300,11 +300,14 @@ tarExtractRegularFile(TarInfo *header, int extractFlag, int tostdoutFlag) /* Open the file to be written, if a file is supposed to be written */ if (extractFlag==TRUE && tostdoutFlag==FALSE) { - if ((outFd=open(header->name, O_CREAT|O_TRUNC|O_WRONLY, header->mode & ~S_IFMT)) < 0) - errorMsg(io_error, header->name, strerror(errno)); /* Create the path to the file, just in case it isn't there... * This should not screw up path permissions or anything. */ createPath(header->name, 0777); + if ((outFd=open(header->name, O_CREAT|O_TRUNC|O_WRONLY, + header->mode & ~S_IFMT)) < 0) { + errorMsg(io_error, header->name, strerror(errno)); + return( FALSE); + } } /* Write out the file, if we are supposed to be doing that */ |