Hello community,

here is the log from the commit of package logrotate for openSUSE:Factory
checked in at Tue Sep 13 12:37:56 CEST 2011.



--------
--- logrotate/logrotate.changes 2011-09-07 14:54:02.000000000 +0200
+++ /mounts/work_src_done/STABLE/logrotate/logrotate.changes    2011-09-08 
12:16:40.000000000 +0200
@@ -1,0 +2,24 @@
+Wed Sep  7 14:30:29 UTC 2011 - [email protected]
+
+- update to 3.8.1
+- dropped CVE patches as they were merged to upstream
+- changelog
+  - fixed 1 memory leak in prerotateSingleLog
+  - do not redirect logrotate errors to /dev/null in cron script
+  - fixed "size" directive parsing
+  - handle situation when acl_get_fd is supported, but acl_set_fd is not
+  - added "maxsize" directive (see man page)
+  - added "dateyesterday" option (see man page)
+  - fixed crash when config file had exactly 4096*N bytes
+  - added WITH_ACL make option to link against -lacl and preserve ACLs
+    during rotation
+  - added "su" option to define user/group for rotation. Logrotate now
+    skips directories which are world writable or writable by group
+    which is not "root" unless "su" directive is used.
+  - fixed CVE-2011-1098: race condition by creation of new files
+  - fixed possible shell injection when using "shred" directive (CVE-2011-1154)
+  - fixed escaping of file names within 'write state' action (CVE-2011-1155)
+  - better 'size' directive description
+  - fixed possible buffer-overflow when reading config files
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
  logrotate-3.7.9.tar.bz2
  logrotate-CVE-2011-1098.patch
  logrotate-CVE-2011-1155.patch
  logrotate-shred-CVE-2011-1154.patch

New:
----
  logrotate-3.8.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ logrotate.spec ++++++
--- /var/tmp/diff_new_pack.77ERtE/_old  2011-09-13 12:37:52.000000000 +0200
+++ /var/tmp/diff_new_pack.77ERtE/_new  2011-09-13 12:37:52.000000000 +0200
@@ -19,21 +19,19 @@
 Url:            https://fedorahosted.org/releases/l/o/logrotate
 
 Name:           logrotate
-Version:        3.7.9
-Release:        12
+Version:        3.8.1
+Release:        1
 License:        GPLv2+
 Summary:        Rotate, compress, remove, and mail system log files
 Group:          System/Base
-Source:         %{name}-%{version}.tar.bz2
+Source:         %{name}-%{version}.tar.gz
 Source100:      %{name}-rpmlintrc
 Patch0:         logrotate-3.7.8-suse.patch
 Patch1:         logrotate-3.7.8-conf.patch
 Patch2:         logrotate-3.7.8-autoext.patch
 Patch3:         logrotate-3.7.8-addextension.patch
 Patch4:         logrotate-3.7.8-mess_err.patch
-Patch5:         logrotate-CVE-2011-1098.patch
-Patch6:         logrotate-shred-CVE-2011-1154.patch
-Patch7:         logrotate-CVE-2011-1155.patch
+# PATCH-FIX-UPSTREAM allow separated compressoptions (bnc#711780)
 Patch8:         logrotate-3.7.9-compressoptions.patch
 BuildRequires:  libselinux-devel
 BuildRequires:  popt-devel
@@ -59,9 +57,6 @@
 %patch2
 %patch3
 %patch4
-%patch5 -p1
-%patch6
-%patch7
 %patch8 -p1
 
 %build
@@ -81,7 +76,7 @@
 %post
 %{remove_and_set MAX_DAYS_FOR_LOG_FILES}
 if [ -f /etc/logrotate.d/aaa_base ] ; then
-   echo "Saving old logrotate system confguration"
+   echo "Saving old logrotate system configuration"
    mv -v /etc/logrotate.d/aaa_base /etc/logrotate.d.aaa_base.save
 fi
 

++++++ logrotate-3.7.8-addextension.patch ++++++
--- /var/tmp/diff_new_pack.77ERtE/_old  2011-09-13 12:37:52.000000000 +0200
+++ /var/tmp/diff_new_pack.77ERtE/_new  2011-09-13 12:37:52.000000000 +0200
@@ -1,17 +1,16 @@
 Index: test/test
 ===================================================================
---- test/test.orig     2008-05-14 12:31:35.000000000 +0200
-+++ test/test  2009-03-06 15:15:00.000000000 +0100
-@@ -369,4 +369,27 @@
+--- test/test.orig
++++ test/test
+@@ -427,4 +427,26 @@ test.log 0
+ test.log.1 0 zero
  EOF
  
- rm -rf testdir
-+
 +# check rotation with extension appended to the filename
-+cleanup 15
++cleanup 17
 +
-+preptest test.log 15 1 0
-+$RLR test-config.15 --force
++preptest test.log 17 1 0
++$RLR test-config.17 --force
 +
 +checkoutput <<EOF
 +test.log 0
@@ -19,48 +18,22 @@
 +EOF
 +
 +# check rotation with extension moved after the number
-+cleanup 16
++cleanup 18
 +
-+preptest test.log 16 1 0
-+$RLR test-config.16 --force
++preptest test.log 18 1 0
++$RLR test-config.18 --force
 +
 +checkoutput <<EOF
 +test.log 0
 +test.1.log 0 zero
 +EOF
 +
- cleanup
-Index: test/test-config.16.in
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ test/test-config.16.in     2009-03-06 15:15:00.000000000 +0100
-@@ -0,0 +1,8 @@
-+create
-+
-+&DIR&/test.log {
-+    monthly
-+    rotate 1
-+    addextension .log
-+}
-+
-Index: test/test-config.15.in
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ test/test-config.15.in     2009-03-06 15:15:00.000000000 +0100
-@@ -0,0 +1,8 @@
-+create
-+
-+&DIR&/test.log {
-+    monthly
-+    rotate 1
-+    addextension .newext
-+}
-+
+ # cleanup
 Index: config.c
 ===================================================================
---- config.c.orig      2009-03-06 15:07:06.000000000 +0100
-+++ config.c   2009-03-06 15:17:38.000000000 +0100
-@@ -428,6 +428,7 @@
+--- config.c.orig
++++ config.c
+@@ -519,6 +519,7 @@ int readAllConfigPaths(const char **path
                .last = NULL,
                .logAddress = NULL,
                .extension = NULL,
@@ -68,37 +41,32 @@
                .compress_prog = NULL,
                .uncompress_prog = NULL,
                .compress_ext = NULL,
-@@ -1158,6 +1159,24 @@
-               message(MESS_DEBUG, "extension is now %s\n",
-                       newlog->extension);
- 
-+          } else if (!strcmp(start, "addextension")) {
-+              *endtag = oldchar, start = endtag;
+@@ -1177,6 +1178,19 @@ static int readConfigFile(const char *co
+                                       message(MESS_DEBUG, "extension is now 
%s\n",
+                                               newlog->extension);
+ 
++                              } else if (!strcmp(key, "addextension")) {
++                                      if ((key = isolateValue
++                                              (configFile, lineNum, 
"addextension name", &start,
++                                                      &buf, length)) != NULL) 
{
++                                              freeLogItem (addextension);
++                                              newlog->addextension = key;
++                                              key = NULL;
++                                      }
++                                      else continue;
 +
-+              freeLogItem (addextension);
++                                      message(MESS_DEBUG, "addextension is 
now %s\n",
++                                              newlog->addextension);
 +
-+              if (!isolateValue
-+                  (configFile, lineNum, "addextension name", &start,
-+                   &endtag)) {
-+                  oldchar = *endtag, *endtag = '\0';
-+
-+                  newlog->addextension = strdup(start);
-+
-+                  *endtag = oldchar, start = endtag;
-+              }
-+
-+              message(MESS_DEBUG, "addextension is now %s\n",
-+                      newlog->addextension);
-+
-           } else if (!strcmp(start, "compresscmd")) {
-               *endtag = oldchar, start = endtag;
+                               } else if (!strcmp(key, "compresscmd")) {
+                                       freeLogItem (compress_prog);
  
 Index: logrotate.8
 ===================================================================
---- logrotate.8.orig   2008-12-06 15:05:40.000000000 +0100
-+++ logrotate.8        2009-03-06 15:15:00.000000000 +0100
-@@ -144,6 +144,15 @@
- a \fBlogrotate\fR configuration file:
+--- logrotate.8.orig
++++ logrotate.8
+@@ -248,6 +248,15 @@ appears after \fIext\fR. For example you
+ and want to rotate it to mylog.1.foo.gz instead of mylog.foo.1.gz.
  
  .TP
 +\fBaddextension \fIext\fR
@@ -110,14 +78,14 @@
 +appears after \fIext\fR.
 +
 +.TP
- \fBcompress\fR
- Old versions of log files are compressed with \fBgzip\fR(1) by default. See 
also
- \fBnocompress\fR. 
+ \fBifempty\fR
+ Rotate the log file even if it is empty, overriding the \fBnotifempty\fR
+ option (\fBifempty\fR is the default).
 Index: logrotate.c
 ===================================================================
---- logrotate.c.orig   2009-03-06 15:07:06.000000000 +0100
-+++ logrotate.c        2009-03-06 15:15:00.000000000 +0100
-@@ -671,6 +671,24 @@
+--- logrotate.c.orig
++++ logrotate.c
+@@ -867,6 +867,24 @@ int prerotateSingleLog(struct logInfo *l
  
      rotNames->baseName = strdup(ourBaseName(log->files[logNum]));
  
@@ -139,14 +107,14 @@
 +      }
 +    }
 +
-     oldName = alloca(PATH_MAX);
-     newName = alloca(PATH_MAX);
-     rotNames->disposeName = malloc(PATH_MAX);
+     if (log->extension &&
+       strncmp(&
+               (rotNames->
 Index: logrotate.h
 ===================================================================
---- logrotate.h.orig   2009-03-06 15:07:06.000000000 +0100
-+++ logrotate.h        2009-03-06 15:15:00.000000000 +0100
-@@ -41,6 +41,7 @@
+--- logrotate.h.orig
++++ logrotate.h
+@@ -44,6 +44,7 @@ struct logInfo {
      char *pre, *post, *first, *last;
      char *logAddress;
      char *extension;
@@ -154,3 +122,27 @@
      char *compress_prog;
      char *uncompress_prog;
      char *compress_ext;
+Index: test/test-config.17.in
+===================================================================
+--- /dev/null
++++ test/test-config.17.in
+@@ -0,0 +1,7 @@
++create
++
++&DIR&/test.log {
++    monthly
++    rotate 1
++    addextension .newext
++}
+Index: test/test-config.18.in
+===================================================================
+--- /dev/null
++++ test/test-config.18.in
+@@ -0,0 +1,7 @@
++create
++
++&DIR&/test.log {
++    monthly
++    rotate 1
++    addextension .log
++}

++++++ logrotate-3.7.8-autoext.patch ++++++
--- /var/tmp/diff_new_pack.77ERtE/_old  2011-09-13 12:37:52.000000000 +0200
+++ /var/tmp/diff_new_pack.77ERtE/_new  2011-09-13 12:37:52.000000000 +0200
@@ -1,40 +1,39 @@
 Index: config.c
 ===================================================================
---- config.c.orig      2008-06-02 12:26:14.000000000 +0200
-+++ config.c   2009-03-06 14:21:45.000000000 +0100
-@@ -483,7 +483,7 @@
- static int readConfigFile(const char *configFile, struct logInfo *defConfig)
- {
-     int fd;
--    char *buf, *endtag;
-+    char *buf, *endtag, *compresscmd_base;
-     char oldchar, foo;
-     off_t length;
-     int lineNum = 1;
-@@ -1189,6 +1189,18 @@
-               message(MESS_DEBUG, "compress_prog is now %s\n",
-                       newlog->compress_prog);
+--- config.c.orig
++++ config.c
+@@ -583,6 +583,7 @@ static int readConfigFile(const char *co
+     char **scriptDest = NULL;
+     struct logInfo *newlog = defConfig;
+     char *start, *chptr;
++    char *compresscmd_base;
+     char *dirName;
+     struct group *group;
+     struct passwd *pw = NULL;
+@@ -1205,6 +1206,18 @@ static int readConfigFile(const char *co
+                                       message(MESS_DEBUG, "compress_prog is 
now %s\n",
+                                               newlog->compress_prog);
  
-+              compresscmd_base=strdup(basename(newlog->compress_prog));
-+              i=0; /* have to check whether we may do this! */
-+              /* we check whether we changed the compress_cmd. In case we use 
the apropriate extension
-+                 as listed in compress_cmd_list */
-+              while ((i>=0)&&(strcmp(compress_cmd_list[i][0], "EOLIST"))){
-+                  if (0==strcmp(compress_cmd_list[i][0], compresscmd_base)){
-+                      newlog->compress_ext=strdup((char 
*)compress_cmd_list[i][1]);
-+                      message(MESS_DEBUG, "compress_ext was changed to %s\n", 
newlog->compress_ext);
-+                      i=-10; /* terminate loop! */
-+                  }
-+                  i++;
-+              }
-           } else if (!strcmp(start, "uncompresscmd")) {
-               *endtag = oldchar, start = endtag;
++                                      
compresscmd_base=strdup(basename(newlog->compress_prog));
++                                      i=0; /* have to check whether we may do 
this! */
++                                      /* we check whether we changed the 
compress_cmd. In case we use the apropriate extension
++                                         as listed in compress_cmd_list */
++                                      while 
((i>=0)&&(strcmp(compress_cmd_list[i][0], "EOLIST"))){
++                                          if 
(0==strcmp(compress_cmd_list[i][0], compresscmd_base)){
++                                              
newlog->compress_ext=strdup((char *)compress_cmd_list[i][1]);
++                                              message(MESS_DEBUG, 
"compress_ext was changed to %s\n", newlog->compress_ext);
++                                              i=-10; /* terminate loop! */
++                                          }
++                                          i++;
++                                      }
+                               } else if (!strcmp(key, "uncompresscmd")) {
+                                       freeLogItem (uncompress_prog);
  
 Index: logrotate.c
 ===================================================================
---- logrotate.c.orig   2008-10-15 15:07:43.000000000 +0200
-+++ logrotate.c        2009-03-06 14:21:45.000000000 +0100
-@@ -54,6 +54,16 @@
+--- logrotate.c.orig
++++ logrotate.c
+@@ -76,6 +76,16 @@ unsigned int hashSize;
  int numLogs = 0;
  int debug = 0;
  char *mailCommand = DEFAULT_MAIL_COMMAND;
@@ -49,13 +48,13 @@
 +};
 +
  time_t nowSecs = 0;
- 
- static int shred_file(char *filename, struct logInfo *log);
+ static uid_t save_euid;
+ static gid_t save_egid;
 Index: logrotate.h
 ===================================================================
---- logrotate.h.orig   2008-05-09 09:28:59.000000000 +0200
-+++ logrotate.h        2009-03-06 14:21:45.000000000 +0100
-@@ -61,6 +61,9 @@
+--- logrotate.h.orig
++++ logrotate.h
+@@ -66,6 +66,9 @@ TAILQ_HEAD(logInfoHead, logInfo) logs;
  extern int numLogs;
  extern int debug;
  
@@ -63,5 +62,5 @@
 +extern const char * compress_cmd_list[][2];
 +
  int readAllConfigPaths(const char **paths);
- 
- #endif
+ #if !defined(asprintf)
+ int asprintf(char **string_ptr, const char *format, ...);

++++++ logrotate-3.7.8-mess_err.patch ++++++
--- /var/tmp/diff_new_pack.77ERtE/_old  2011-09-13 12:37:52.000000000 +0200
+++ /var/tmp/diff_new_pack.77ERtE/_new  2011-09-13 12:37:52.000000000 +0200
@@ -1,10 +1,10 @@
 Index: logrotate.c
 ===================================================================
---- logrotate.c.orig   2009-03-06 15:20:25.000000000 +0100
-+++ logrotate.c        2009-03-06 15:24:07.000000000 +0100
-@@ -997,7 +997,7 @@
+--- logrotate.c.orig
++++ logrotate.c
+@@ -1206,7 +1206,7 @@ int prerotateSingleLog(struct logInfo *l
                }
-               snprintf(destFile, PATH_MAX, "%s%s", rotNames->finalName, 
compext);
+               asprintf(&destFile, "%s%s", rotNames->finalName, compext);
                if (!stat(destFile, &fst_buf)) {
 -                      message(MESS_DEBUG,
 +                      message(MESS_ERROR,

++++++ logrotate-3.7.8-suse.patch ++++++
--- /var/tmp/diff_new_pack.77ERtE/_old  2011-09-13 12:37:52.000000000 +0200
+++ /var/tmp/diff_new_pack.77ERtE/_new  2011-09-13 12:37:52.000000000 +0200
@@ -2,12 +2,12 @@
 ===================================================================
 --- Makefile.orig
 +++ Makefile
-@@ -63,7 +63,7 @@ ifneq ($(STATEFILE),)
+@@ -81,7 +81,7 @@ ifneq ($(STATEFILE),)
  endif
  
  BINDIR = $(BASEDIR)/sbin
--MANDIR = $(BASEDIR)/man
-+MANDIR = $(BASEDIR)/share/man
+-MANDIR ?= $(BASEDIR)/man
++MANDIR ?= $(BASEDIR)/share/man
  
  #--------------------------------------------------------------------------
  
@@ -18,27 +18,28 @@
 @@ -1,8 +1,23 @@
  #!/bin/sh
  
--/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
+-/usr/sbin/logrotate /etc/logrotate.conf
 -EXITVALUE=$?
+-if [ $EXITVALUE != 0 ]; then
+-    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
 +# exit immediately if there is another instance running
 +if checkproc /usr/sbin/logrotate; then
 +      /bin/logger -p cron.warning -t logrotate "ALERT another instance of 
logrotate is running - exiting"
-+      exit 1;
-+fi;
++      exit 1
+ fi
 +
 +TMPF=`mktemp /tmp/logrotate.XXXXXXXXXX`
 +
 +/usr/sbin/logrotate /etc/logrotate.conf 2>&1 | tee $TMPF
 +EXITVALUE=${PIPESTATUS[0]}
 +
- if [ $EXITVALUE != 0 ]; then
--    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
++if [ $EXITVALUE != 0 ]; then
 +    # wait a sec, we might just have restarted syslog
 +    sleep 1
 +    # tell what went wrong
 +    /bin/logger -p cron.warning -t logrotate "ALERT exited abnormally with 
[$EXITVALUE]"
 +    /bin/logger -p cron.warning -t logrotate -f $TMPF
- fi
++ fi
 +
 +rm -f $TMPF
  exit 0

++++++ logrotate-3.7.9-compressoptions.patch ++++++
--- /var/tmp/diff_new_pack.77ERtE/_old  2011-09-13 12:37:52.000000000 +0200
+++ /var/tmp/diff_new_pack.77ERtE/_new  2011-09-13 12:37:52.000000000 +0200
@@ -1,8 +1,8 @@
-Index: logrotate-3.7.9/config.c
+Index: logrotate-3.8.1/config.c
 ===================================================================
---- logrotate-3.7.9.orig/config.c
-+++ logrotate-3.7.9/config.c
-@@ -101,7 +139,9 @@ static char *readPath(const char *config
+--- logrotate-3.8.1.orig/config.c
++++ logrotate-3.8.1/config.c
+@@ -192,7 +192,9 @@ static char *readPath(const char *config
        chptr = start;
  
        while( (len = mbrtowc(&pwc, chptr, strlen(chptr), NULL)) != 0 ) {


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to