it turs out, there was a nasty tar bug where bb tar would create leading dirs
authorEric Andersen <andersen@codepoet.org>
Wed, 20 Jun 2001 20:47:31 +0000 (20:47 -0000)
committerEric Andersen <andersen@codepoet.org>
Wed, 20 Jun 2001 20:47:31 +0000 (20:47 -0000)
with mode 0777 in all cases due to usask issues.  Thanks to Matt Kraai for
noticing and spotting the culprit.  This makes bb tar behave just like GNU
tar once again.
 -Erik

archival/tar.c
tar.c

index 0cb638a7f1eea8982a4d1ebebc4ce9effae6e440..bca5a090625fe818666713ec80830584b676e6a5 100644 (file)
@@ -576,10 +576,6 @@ static int readTarFile(int tarFd, int extractFlag, int listFlag,
        TarHeader rawHeader;
        TarInfo header;
 
-       /* Set the umask for this process so it doesn't 
-        * screw up permission setting for us later. */
-       umask(0);
-
        /* Read the tar file, and iterate over it one file at a time */
        while ( (status = full_read(tarFd, (char*)&rawHeader, TAR_BLOCK_SIZE)) == TAR_BLOCK_SIZE ) {
 
@@ -1109,10 +1105,6 @@ static int writeTarFile(const char* tarName, int verboseFlag, char **argv,
        if (fstat(tbInfo.tarFd, &tbInfo.statBuf) < 0)
                error_msg_and_die(io_error, tarName, strerror(errno)); 
 
-       /* Set the umask for this process so it doesn't 
-        * screw up permission setting for us later. */
-       umask(0);
-
        /* Read the directory/files and iterate over them one at a time */
        while (*argv != NULL) {
                if (recursive_action(*argv++, TRUE, FALSE, FALSE,
diff --git a/tar.c b/tar.c
index 0cb638a7f1eea8982a4d1ebebc4ce9effae6e440..bca5a090625fe818666713ec80830584b676e6a5 100644 (file)
--- a/tar.c
+++ b/tar.c
@@ -576,10 +576,6 @@ static int readTarFile(int tarFd, int extractFlag, int listFlag,
        TarHeader rawHeader;
        TarInfo header;
 
-       /* Set the umask for this process so it doesn't 
-        * screw up permission setting for us later. */
-       umask(0);
-
        /* Read the tar file, and iterate over it one file at a time */
        while ( (status = full_read(tarFd, (char*)&rawHeader, TAR_BLOCK_SIZE)) == TAR_BLOCK_SIZE ) {
 
@@ -1109,10 +1105,6 @@ static int writeTarFile(const char* tarName, int verboseFlag, char **argv,
        if (fstat(tbInfo.tarFd, &tbInfo.statBuf) < 0)
                error_msg_and_die(io_error, tarName, strerror(errno)); 
 
-       /* Set the umask for this process so it doesn't 
-        * screw up permission setting for us later. */
-       umask(0);
-
        /* Read the directory/files and iterate over them one at a time */
        while (*argv != NULL) {
                if (recursive_action(*argv++, TRUE, FALSE, FALSE,