tar: add a comment about previous subtle fix
authorvda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Mon, 24 Sep 2007 19:32:53 +0000 (19:32 +0000)
committervda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Mon, 24 Sep 2007 19:32:53 +0000 (19:32 +0000)
git-svn-id: svn://busybox.net/trunk/busybox@19995 69ca8d6d-28ef-0310-b511-8ec308f3f277

archival/tar.c

index bbda52d..18b6267 100644 (file)
@@ -386,6 +386,7 @@ static int writeFileToTarball(const char *fileName, struct stat *statbuf,
        const char *header_name;
        int inputFileFd = -1;
 
+       /* Strip leading '/' (must be before memorizing hardlink's name) */
        header_name = fileName;
        while (header_name[0] == '/') {
                static smallint warned;
@@ -400,6 +401,12 @@ static int writeFileToTarball(const char *fileName, struct stat *statbuf,
        if (header_name[0] == '\0')
                return TRUE;
 
+       /* It is against the rules to archive a socket */
+       if (S_ISSOCK(statbuf->st_mode)) {
+               bb_error_msg("%s: socket ignored", fileName);
+               return TRUE;
+       }
+
        /*
         * Check to see if we are dealing with a hard link.
         * If so -
@@ -414,12 +421,6 @@ static int writeFileToTarball(const char *fileName, struct stat *statbuf,
                        addHardLinkInfo(&tbInfo->hlInfoHead, statbuf, header_name);
        }
 
-       /* It is against the rules to archive a socket */
-       if (S_ISSOCK(statbuf->st_mode)) {
-               bb_error_msg("%s: socket ignored", fileName);
-               return TRUE;
-       }
-
        /* It is a bad idea to store the archive we are in the process of creating,
         * so check the device and inode to be sure that this particular file isn't
         * the new tarball */