From c329f78971157e037b4d8d126279864e99bf213c Mon Sep 17 00:00:00 2001 From: andersen Date: Mon, 4 Jun 2001 16:54:39 +0000 Subject: Revert the patch from Konstantin Boldyshev to never change permissions on existing directories. This behavior is contrary to SUSv2 and contrary to GNU tar. Thanks to Matt Kraai for pointing this out. I should have been much more careful about accepting such a patch. -Erik git-svn-id: svn://busybox.net/trunk/busybox@2789 69ca8d6d-28ef-0310-b511-8ec308f3f277 --- tar.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'tar.c') diff --git a/tar.c b/tar.c index 9e1270cca..f31859e33 100644 --- a/tar.c +++ b/tar.c @@ -382,8 +382,6 @@ tarExtractRegularFile(TarInfo *header, int extractFlag, int tostdoutFlag) static int tarExtractDirectory(TarInfo *header, int extractFlag, int tostdoutFlag) { - int result; - if (extractFlag==FALSE || tostdoutFlag==TRUE) return( TRUE); @@ -394,15 +392,12 @@ tarExtractDirectory(TarInfo *header, int extractFlag, int tostdoutFlag) /* make the final component, just in case it was * omitted by create_path() (which will skip the * directory if it doesn't have a terminating '/') */ - result = mkdir(header->name, header->mode); - /* Don't fix permissions on pre-existing directories */ - if (result == 0) { - fixUpPermissions(header); - } else if (result < 0 && errno != EEXIST) { + if (mkdir(header->name, header->mode) < 0 && errno != EEXIST) { perror_msg("%s", header->name); return FALSE; } + fixUpPermissions(header); return( TRUE); } -- cgit v1.2.3-55-g6feb