[logrotate: 1/2] fix #726980 - work properly when acl_get_fd is supported, but acl_set_fd is not
Jan Kaluža
jkaluza at fedoraproject.org
Mon Aug 1 07:02:51 UTC 2011
commit 8d1447c56980989811dc6644868776fab34921da
Author: Jan Kaluza <hanzz.k at gmail.com>
Date: Mon Aug 1 08:54:26 2011 +0200
fix #726980 - work properly when acl_get_fd is supported,
but acl_set_fd is not
logrotate-3.8.0-handle-acl-not-supported.patch | 67 ++++++++++++++++++++++++
logrotate.spec | 8 +++-
2 files changed, 74 insertions(+), 1 deletions(-)
---
diff --git a/logrotate-3.8.0-handle-acl-not-supported.patch b/logrotate-3.8.0-handle-acl-not-supported.patch
new file mode 100644
index 0000000..913f2df
--- /dev/null
+++ b/logrotate-3.8.0-handle-acl-not-supported.patch
@@ -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;
diff --git a/logrotate.spec b/logrotate.spec
index 0718467..ad39fbe 100644
--- a/logrotate.spec
+++ b/logrotate.spec
@@ -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 at 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 at redhat.com> 3.8.0-2
- fix #722825 - do not redirect logrotate output in cron script
More information about the scm-commits
mailing list