diff options
| author | kraai <kraai@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-01-13 21:46:25 +0000 |
|---|---|---|
| committer | kraai <kraai@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-01-13 21:46:25 +0000 |
| commit | 5ab7d2c99985e627df071abbdfae8311465305c8 (patch) | |
| tree | 8a6e36ab55776b9354e1bfc869e24befb5ccfa21 | |
| parent | fde52524fe3d2c413f4b0522947a534ee52cc02b (diff) | |
| download | busybox-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
| -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 | ||
