diff options
Diffstat (limited to 'archival')
-rw-r--r-- | archival/dpkg.c | 2 | ||||
-rw-r--r-- | archival/tar.c | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/archival/dpkg.c b/archival/dpkg.c index 4224672ec..7dd46be0c 100644 --- a/archival/dpkg.c +++ b/archival/dpkg.c @@ -837,7 +837,7 @@ extern int dpkg_main(int argc, char **argv) optind++; } - create_path(infodir, S_IRWXU); + make_directory(infodir, S_IRWXU, FILEUTILS_RECUR); status = status_read(); diff --git a/archival/tar.c b/archival/tar.c index 55fb12c2c..e68194ff7 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -338,7 +338,9 @@ tarExtractRegularFile(TarInfo *header, int extractFlag, int tostdoutFlag) if (extractFlag==TRUE && tostdoutFlag==FALSE) { /* Create the path to the file, just in case it isn't there... * This should not screw up path permissions or anything. */ - create_path(header->name, 0777); + char *dir = dirname (header->name); + make_directory (dir, -1, FILEUTILS_RECUR); + free (dir); if ((outFd=open(header->name, O_CREAT|O_TRUNC|O_WRONLY, header->mode & ~S_IFMT)) < 0) { error_msg(io_error, header->name, strerror(errno)); @@ -397,8 +399,7 @@ tarExtractDirectory(TarInfo *header, int extractFlag, int tostdoutFlag) if (extractFlag==FALSE || tostdoutFlag==TRUE) return( TRUE); - if (create_path(header->name, header->mode) != TRUE) { - perror_msg("%s: Cannot mkdir", header->name); + if (make_directory(header->name, header->mode, FILEUTILS_RECUR) < 0) { return( FALSE); } /* make the final component, just in case it was |