fix #726980 - work properly when acl_get_fd is supported,

but acl_set_fd is not
This commit is contained in:
Jan Kaluza 2011-08-01 08:54:26 +02:00
parent 5d6d8a191b
commit 8d1447c569
2 changed files with 74 additions and 1 deletions

View File

@ -0,0 +1,67 @@
Index: logrotate.c
===================================================================
--- logrotate.c (revision 335)
+++ logrotate.c (working copy)
@@ -410,13 +410,15 @@
}
if (prev_acl) {
if (acl_set_fd(outFile, prev_acl) == -1) {
- message(MESS_ERROR, "setting ACL for %s: %s\n",
- compressedName, strerror(errno));
- acl_free(prev_acl);
- prev_acl = NULL;
- close(inFile);
- close(outFile);
- return 1;
+ if (errno != ENOTSUP) {
+ message(MESS_ERROR, "setting ACL for %s: %s\n",
+ compressedName, strerror(errno));
+ acl_free(prev_acl);
+ prev_acl = NULL;
+ close(inFile);
+ close(outFile);
+ return 1;
+ }
}
acl_free(prev_acl);
prev_acl = NULL;
@@ -624,14 +626,16 @@
}
#ifdef WITH_ACL
if (prev_acl) {
- if (acl_set_fd(fdsave, prev_acl) == -1) {
- message(MESS_ERROR, "setting ACL for %s: %s\n",
- saveLog, strerror(errno));
- acl_free(prev_acl);
- prev_acl = NULL;
- close(fdsave);
- close(fdcurr);
- return 1;
+ if ((fdsave, prev_acl) == -1) {
+ if (errno != ENOTSUP) {
+ message(MESS_ERROR, "setting ACL for %s: %s\n",
+ saveLog, strerror(errno));
+ acl_free(prev_acl);
+ prev_acl = NULL;
+ close(fdsave);
+ close(fdcurr);
+ return 1;
+ }
}
acl_free(prev_acl);
prev_acl = NULL;
@@ -1331,9 +1335,11 @@
#ifdef WITH_ACL
if (prev_acl) {
if (acl_set_fd(fd, prev_acl) == -1) {
- message(MESS_ERROR, "setting ACL for %s: %s\n",
- log->files[logNum], strerror(errno));
- hasErrors = 1;
+ if (errno != ENOTSUP) {
+ message(MESS_ERROR, "setting ACL for %s: %s\n",
+ log->files[logNum], strerror(errno));
+ hasErrors = 1;
+ }
}
acl_free(prev_acl);
prev_acl = NULL;

View File

@ -1,12 +1,13 @@
Summary: Rotates, compresses, removes and mails system log files
Name: logrotate
Version: 3.8.0
Release: 2%{?dist}
Release: 3%{?dist}
License: GPL+
Group: System Environment/Base
Url: https://fedorahosted.org/logrotate/
Source: https://fedorahosted.org/releases/l/o/logrotate/logrotate-%{version}.tar.gz
Patch0: logrotate-3.8.0-no-cron-redirection.patch
Patch1: logrotate-3.8.0-handle-acl-not-supported.patch
Requires: coreutils >= 5.92 libsepol libselinux popt libacl
BuildRequires: libselinux-devel popt-devel libacl-devel
@ -27,6 +28,7 @@ log files on your system.
%setup -q
%patch0 -p1
%patch1
%build
make %{?_smp_mflags} RPM_OPT_FLAGS="$RPM_OPT_FLAGS" WITH_SELINUX=yes WITH_ACL=yes
@ -57,6 +59,10 @@ rm -rf $RPM_BUILD_ROOT
%attr(0644, root, root) %verify(not size md5 mtime) %config(noreplace) %{_localstatedir}/lib/logrotate.status
%changelog
* Wed Aug 01 2011 Jan Kaluza <jkaluza@redhat.com> 3.8.0-3
- fix #726980 - work properly when acl_get_fd is supported,
but acl_set_fd is not
* Wed Jul 20 2011 Jan Kaluza <jkaluza@redhat.com> 3.8.0-2
- fix #722825 - do not redirect logrotate output in cron script