diff options
author | Denis Vlasenko | 2007-09-24 19:32:53 +0000 |
---|---|---|
committer | Denis Vlasenko | 2007-09-24 19:32:53 +0000 |
commit | e9b3321b9f4c85acd13db6fc5a6de821e597b6f9 (patch) | |
tree | 1dc1c93515fceb76f45c2f08ee307afda03f330b | |
parent | 86e0a22ec602f929b1f3b1bd7d7b2f41cc86638c (diff) | |
download | busybox-e9b3321b9f4c85acd13db6fc5a6de821e597b6f9.zip busybox-e9b3321b9f4c85acd13db6fc5a6de821e597b6f9.tar.gz |
tar: add a comment about previous subtle fix
-rw-r--r-- | archival/tar.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/archival/tar.c b/archival/tar.c index bbda52d..18b6267 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 */ |