diff options
Diffstat (limited to 'tar.c')
-rw-r--r-- | tar.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -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 | ||