aboutsummaryrefslogtreecommitdiff
path: root/tar.c
diff options
context:
space:
mode:
authorkraai <kraai@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-01-13 21:46:25 +0000
committerkraai <kraai@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-01-13 21:46:25 +0000
commit5ab7d2c99985e627df071abbdfae8311465305c8 (patch)
tree8a6e36ab55776b9354e1bfc869e24befb5ccfa21 /tar.c
parentfde52524fe3d2c413f4b0522947a534ee52cc02b (diff)
downloadbusybox-w32-5ab7d2c99985e627df071abbdfae8311465305c8.tar.gz
busybox-w32-5ab7d2c99985e627df071abbdfae8311465305c8.tar.bz2
busybox-w32-5ab7d2c99985e627df071abbdfae8311465305c8.zip
Fix ownership of extracted directories.
git-svn-id: svn://busybox.net/trunk/busybox@1562 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'tar.c')
-rw-r--r--tar.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/tar.c b/tar.c
index 9a3cff361..844559580 100644
--- a/tar.c
+++ b/tar.c
@@ -426,9 +426,12 @@ tarExtractDirectory(TarInfo *header, int extractFlag, int tostdoutFlag)
426 /* make the final component, just in case it was 426 /* make the final component, just in case it was
427 * omitted by create_path() (which will skip the 427 * omitted by create_path() (which will skip the
428 * directory if it doesn't have a terminating '/') */ 428 * directory if it doesn't have a terminating '/') */
429 if (mkdir(header->name, header->mode) == 0) { 429 if (mkdir(header->name, header->mode) < 0 && errno != EEXIST) {
430 fixUpPermissions(header); 430 perror_msg("%s", header->name);
431 return FALSE;
431 } 432 }
433
434 fixUpPermissions(header);
432 return( TRUE); 435 return( TRUE);
433} 436}
434 437