diff --git a/ar.c b/ar.c index b758a6975..eaa15a516 100644 --- a/ar.c +++ b/ar.c @@ -298,7 +298,8 @@ extern int ar_main(int argc, char **argv) while(extractList->next != NULL) { if ( (funct & EXT_TO_FILE) == EXT_TO_FILE) { - dstFd = open(extractList->name, O_WRONLY | O_CREAT); + dstFd = open(extractList->name, O_WRONLY | O_CREAT, extractList->mode); + extractAr(srcFd, dstFd, extractList); } if ( (funct & EXT_TO_STDOUT) == EXT_TO_STDOUT) diff --git a/archival/ar.c b/archival/ar.c index b758a6975..eaa15a516 100644 --- a/archival/ar.c +++ b/archival/ar.c @@ -298,7 +298,8 @@ extern int ar_main(int argc, char **argv) while(extractList->next != NULL) { if ( (funct & EXT_TO_FILE) == EXT_TO_FILE) { - dstFd = open(extractList->name, O_WRONLY | O_CREAT); + dstFd = open(extractList->name, O_WRONLY | O_CREAT, extractList->mode); + extractAr(srcFd, dstFd, extractList); } if ( (funct & EXT_TO_STDOUT) == EXT_TO_STDOUT)