From e9b3321b9f4c85acd13db6fc5a6de821e597b6f9 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Mon, 24 Sep 2007 19:32:53 +0000 Subject: tar: add a comment about previous subtle fix --- archival/tar.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/archival/tar.c b/archival/tar.c index bbda52d14..18b626701 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -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 */ -- cgit v1.2.3