From: Paul Eggert Date: Sun, 7 Nov 1999 21:06:38 +0000 (+0000) Subject: (set_stat): Remove duplicate code. X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=7be178a4d4c884e0ddd27ce93e04a00411f4332a;p=chaz%2Ftar (set_stat): Remove duplicate code. --- diff --git a/src/extract.c b/src/extract.c index aa69980..0aba5e7 100644 --- a/src/extract.c +++ b/src/extract.c @@ -155,8 +155,6 @@ set_stat (char *file_name, struct stat *stat_info, int symlink_flag) if (0 < same_owner_option) { -#if HAVE_LCHOWN - /* When lchown exists, it should be used to change the attributes of the symbolic link itself. In this case, a mere chown would change the attributes of the file the symbolic link is pointing to, and @@ -164,11 +162,13 @@ set_stat (char *file_name, struct stat *stat_info, int symlink_flag) if (symlink_flag) { +#if HAVE_LCHOWN if (lchown (file_name, stat_info->st_uid, stat_info->st_gid) < 0) ERROR ((0, errno, _("%s: Cannot lchown to uid %lu gid %lu"), file_name, (unsigned long) stat_info->st_uid, (unsigned long) stat_info->st_gid)); +#endif } else { @@ -177,28 +177,13 @@ set_stat (char *file_name, struct stat *stat_info, int symlink_flag) file_name, (unsigned long) stat_info->st_uid, (unsigned long) stat_info->st_gid)); - } - -#else /* not HAVE_LCHOWN */ - if (!symlink_flag) - - if (chown (file_name, stat_info->st_uid, stat_info->st_gid) < 0) - ERROR ((0, errno, _("%s: Cannot chown to uid %lu gid %lu"), - file_name, - (unsigned long) stat_info->st_uid, - (unsigned long) stat_info->st_gid)); - -#endif/* not HAVE_LCHOWN */ - - if (!symlink_flag) - - /* On a few systems, and in particular, those allowing to give files - away, changing the owner or group destroys the suid or sgid bits. - So let's attempt setting these bits once more. */ - - if (stat_info->st_mode & (S_ISUID | S_ISGID | S_ISVTX)) - set_mode (file_name, stat_info); + /* On a few systems, and in particular, those allowing to give files + away, changing the owner or group destroys the suid or sgid bits. + So let's attempt setting these bits once more. */ + if (stat_info->st_mode & (S_ISUID | S_ISGID | S_ISVTX)) + set_mode (file_name, stat_info); + } } }