fix #578115 - missingok problem with globs
This commit is contained in:
parent
5bfc02ae0f
commit
77feb3e131
74
logrotate-3.7.8-missingok.patch
Normal file
74
logrotate-3.7.8-missingok.patch
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
diff -up logrotate-3.7.8/config.c.missingok logrotate-3.7.8/config.c
|
||||||
|
--- logrotate-3.7.8/config.c.missingok 2010-04-06 11:35:11.000000000 +0200
|
||||||
|
+++ logrotate-3.7.8/config.c 2010-04-06 11:43:37.000000000 +0200
|
||||||
|
@@ -41,6 +41,7 @@ static int defTabooCount = sizeof(defTab
|
||||||
|
/* I shouldn't use globals here :-( */
|
||||||
|
static char **tabooExts = NULL;
|
||||||
|
int tabooCount = 0;
|
||||||
|
+static int glob_errno = 0;
|
||||||
|
|
||||||
|
static int readConfigFile(const char *configFile, struct logInfo *defConfig);
|
||||||
|
static int globerr(const char *pathname, int theerr);
|
||||||
|
@@ -461,8 +462,7 @@ int readAllConfigPaths(const char **path
|
||||||
|
|
||||||
|
static int globerr(const char *pathname, int theerr)
|
||||||
|
{
|
||||||
|
- message(MESS_ERROR, "error accessing %s: %s\n", pathname,
|
||||||
|
- strerror(theerr));
|
||||||
|
+ glob_errno = theerr;
|
||||||
|
|
||||||
|
/* We want the glob operation to abort on error, so return 1 */
|
||||||
|
return 1;
|
||||||
|
@@ -501,6 +501,7 @@ static int readConfigFile(const char *co
|
||||||
|
int logerror = 0;
|
||||||
|
struct logInfo *log;
|
||||||
|
static unsigned recursion_depth = 0U;
|
||||||
|
+ char *globerr_msg = NULL;
|
||||||
|
|
||||||
|
/* FIXME: createOwner and createGroup probably shouldn't be fixed
|
||||||
|
length arrays -- of course, if we aren't run setuid it doesn't
|
||||||
|
@@ -1346,16 +1347,25 @@ static int readConfigFile(const char *co
|
||||||
|
newlog->files = NULL;
|
||||||
|
newlog->numFiles = 0;
|
||||||
|
for (argNum = 0; argNum < argc && logerror != 1; argNum++) {
|
||||||
|
+ if (globerr_msg) {
|
||||||
|
+ free(globerr_msg);
|
||||||
|
+ globerr_msg = NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
rc = glob(argv[argNum], GLOB_NOCHECK, globerr,
|
||||||
|
&globResult);
|
||||||
|
if (rc == GLOB_ABORTED) {
|
||||||
|
if (newlog->flags & LOG_FLAG_MISSINGOK)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
- message(MESS_ERROR, "%s:%d glob failed for %s\n",
|
||||||
|
- configFile, lineNum, argv[argNum]);
|
||||||
|
- logerror = 1;
|
||||||
|
- break;
|
||||||
|
+ /* We don't yet know whether this stanza has "missingok"
|
||||||
|
+ * set, so store the error message for later. */
|
||||||
|
+ rc = asprintf(&globerr_msg, "%s:%d glob failed for %s: %s\n",
|
||||||
|
+ configFile, lineNum, argv[argNum], strerror(glob_errno));
|
||||||
|
+ if (rc == -1)
|
||||||
|
+ globerr_msg = NULL;
|
||||||
|
+
|
||||||
|
+ globResult.gl_pathc = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
newlog->files =
|
||||||
|
@@ -1407,6 +1417,14 @@ duperror:
|
||||||
|
lineNum);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
+ if (globerr_msg) {
|
||||||
|
+ if (!(newlog->flags & LOG_FLAG_MISSINGOK))
|
||||||
|
+ message(MESS_ERROR, globerr_msg);
|
||||||
|
+ free(globerr_msg);
|
||||||
|
+ globerr_msg = NULL;
|
||||||
|
+ if (!(newlog->flags & LOG_FLAG_MISSINGOK))
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (newlog->oldDir) {
|
||||||
|
for (i = 0; i < newlog->numFiles; i++) {
|
@ -1,7 +1,7 @@
|
|||||||
Summary: Rotates, compresses, removes and mails system log files
|
Summary: Rotates, compresses, removes and mails system log files
|
||||||
Name: logrotate
|
Name: logrotate
|
||||||
Version: 3.7.8
|
Version: 3.7.8
|
||||||
Release: 7%{?dist}
|
Release: 8%{?dist}
|
||||||
License: GPL+
|
License: GPL+
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
Source: https://fedorahosted.org/releases/l/o/logrotate/logrotate-%{version}.tar.gz
|
Source: https://fedorahosted.org/releases/l/o/logrotate/logrotate-%{version}.tar.gz
|
||||||
@ -11,6 +11,7 @@ Patch3: logrotate-3.7.8-devnull.patch
|
|||||||
Patch4: logrotate-3.7.8-man5.patch
|
Patch4: logrotate-3.7.8-man5.patch
|
||||||
Patch5: logrotate-3.7.8-readonly.patch
|
Patch5: logrotate-3.7.8-readonly.patch
|
||||||
Patch6: logrotate-3.7.8-perm.patch
|
Patch6: logrotate-3.7.8-perm.patch
|
||||||
|
Patch7: logrotate-3.7.8-missingok.patch
|
||||||
|
|
||||||
Requires: coreutils >= 5.92 libsepol libselinux popt
|
Requires: coreutils >= 5.92 libsepol libselinux popt
|
||||||
BuildRequires: libselinux-devel popt-devel
|
BuildRequires: libselinux-devel popt-devel
|
||||||
@ -35,6 +36,7 @@ log files on your system.
|
|||||||
%patch4 -p1 -b .man5
|
%patch4 -p1 -b .man5
|
||||||
%patch5 -p1 -b .readonly
|
%patch5 -p1 -b .readonly
|
||||||
%patch6 -p1 -b .perm
|
%patch6 -p1 -b .perm
|
||||||
|
%patch7 -p1 -b .missingok
|
||||||
|
|
||||||
%build
|
%build
|
||||||
make %{?_smp_mflags} RPM_OPT_FLAGS="$RPM_OPT_FLAGS" WITH_SELINUX=yes
|
make %{?_smp_mflags} RPM_OPT_FLAGS="$RPM_OPT_FLAGS" WITH_SELINUX=yes
|
||||||
@ -65,6 +67,9 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%attr(0644, root, root) %verify(not size md5 mtime) %config(noreplace) %{_localstatedir}/lib/logrotate.status
|
%attr(0644, root, root) %verify(not size md5 mtime) %config(noreplace) %{_localstatedir}/lib/logrotate.status
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Apr 06 2010 Daniel Novotny <dnovotny@redhat.com> 3.7.8-8
|
||||||
|
- fix #578115 - missingok problem with globs
|
||||||
|
|
||||||
* Mon Jan 11 2010 Daniel Novotny <dnovotny@redhat.com> 3.7.8-7
|
* Mon Jan 11 2010 Daniel Novotny <dnovotny@redhat.com> 3.7.8-7
|
||||||
- fix #489038 - RFE: useful permissions on log files
|
- fix #489038 - RFE: useful permissions on log files
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user