xz: Fix --force on setuid/setgid/sticky and multi-hardlink files.

xz didn't compress setuid/setgid/sticky files and files
with multiple hard links even with --force. This bug was
introduced in 23ac2c44c3.

Thanks to Charles Wilson.
This commit is contained in:
Lasse Collin 2011-01-26 12:19:08 +02:00
parent 7bd0a5e7cc
commit 03ebd1bbb3
1 changed files with 7 additions and 8 deletions

View File

@ -457,15 +457,14 @@ io_open_src_real(file_pair *pair)
goto error;
}
if (reg_files_only) {
if (!S_ISREG(pair->src_st.st_mode)) {
message_warning(_("%s: Not a regular file, "
"skipping"), pair->src_name);
if (reg_files_only && !S_ISREG(pair->src_st.st_mode)) {
message_warning(_("%s: Not a regular file, skipping"),
pair->src_name);
goto error;
}
// These are meaningless on Windows.
#ifndef TUKLIB_DOSLIKE
if (reg_files_only && !opt_force) {
if (pair->src_st.st_mode & (S_ISUID | S_ISGID)) {
// gzip rejects setuid and setgid files even
// when --force was used. bzip2 doesn't check
@ -495,8 +494,8 @@ io_open_src_real(file_pair *pair)
"skipping"), pair->src_name);
goto error;
}
#endif
}
#endif
return false;