diff options
author | Matt Kraai <kraai@debian.org> | 2001-01-13 21:46:25 +0000 |
---|---|---|
committer | Matt Kraai <kraai@debian.org> | 2001-01-13 21:46:25 +0000 |
commit | 541ffe30a279823c38b745c5e8c4971cb4a6cc41 (patch) | |
tree | 8a6e36ab55776b9354e1bfc869e24befb5ccfa21 | |
parent | 55787401ea16629070a35f6d46235e648f730870 (diff) | |
download | busybox-w32-541ffe30a279823c38b745c5e8c4971cb4a6cc41.tar.gz busybox-w32-541ffe30a279823c38b745c5e8c4971cb4a6cc41.tar.bz2 busybox-w32-541ffe30a279823c38b745c5e8c4971cb4a6cc41.zip |
Fix ownership of extracted directories.
-rw-r--r-- | archival/tar.c | 7 | ||||
-rw-r--r-- | tar.c | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/archival/tar.c b/archival/tar.c index 9a3cff361..844559580 100644 --- a/archival/tar.c +++ b/archival/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 | ||
@@ -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 | ||