Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Jul 2018 15:46:24 +0000 (UTC)
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r336913 - in head/usr.sbin/newsyslog: . tests
Message-ID:  <201807301546.w6UFkOdr020280@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Mon Jul 30 15:46:24 2018
New Revision: 336913
URL: https://svnweb.freebsd.org/changeset/base/336913

Log:
  newsyslog: fix compression arglist construction
  
  Reuse of the index variable in two nested loops resulted in only the first
  argument in the list being used (fine for gzip, not fine for zstd). Also
  add tests for xz and zstd, and fix the COMPRESS_SUFFIX_MAXLEN macro.
  
  Submitted by:	dnelson_1901_yahoo.com
  Differential Revision:	https://reviews.freebsd.org/D16509

Modified:
  head/usr.sbin/newsyslog/newsyslog.c
  head/usr.sbin/newsyslog/tests/legacy_test.sh

Modified: head/usr.sbin/newsyslog/newsyslog.c
==============================================================================
--- head/usr.sbin/newsyslog/newsyslog.c	Mon Jul 30 15:19:59 2018	(r336912)
+++ head/usr.sbin/newsyslog/newsyslog.c	Mon Jul 30 15:46:24 2018	(r336913)
@@ -105,7 +105,7 @@ __FBSDID("$FreeBSD$");
 #define	COMPRESS_SUFFIX_ZST	".zst"
 #endif
 
-#define	COMPRESS_SUFFIX_MAXLEN	MAX(MAX(sizeof(COMPRESS_SUFFIX_GZ),sizeof(COMPRESS_SUFFIX_BZ2)),sizeof(COMPRESS_SUFFIX_XZ))
+#define	COMPRESS_SUFFIX_MAXLEN	MAX(MAX(MAX(sizeof(COMPRESS_SUFFIX_GZ),sizeof(COMPRESS_SUFFIX_BZ2)),sizeof(COMPRESS_SUFFIX_XZ)),sizeof(COMPRESS_SUFFIX_ZST))
 
 /*
  * Compression types
@@ -2027,7 +2027,7 @@ do_zipwork(struct zipwork_entry *zwork)
 	char zresult[MAXPATHLEN];
 	char command[BUFSIZ];
 	char **args;
-	int c;
+	int c, i;
 
 	assert(zwork != NULL);
 	pgm_path = NULL;
@@ -2043,10 +2043,10 @@ do_zipwork(struct zipwork_entry *zwork)
 				(void) strlcat(zresult,
 				    compress_type[c].suffix, sizeof(zresult));
 				/* the first argument is always NULL, skip it */
-				for (c = 1; c < ARGS_NUM; c++) {
-					if (compress_type[c].args[c] == NULL)
+				for (i = 1; i < ARGS_NUM; i++) {
+					if (compress_type[c].args[i] == NULL)
 						break;
-					args[c] = compress_type[c].args[c];
+					args[i] = compress_type[c].args[i];
 				}
 				break;
 			}

Modified: head/usr.sbin/newsyslog/tests/legacy_test.sh
==============================================================================
--- head/usr.sbin/newsyslog/tests/legacy_test.sh	Mon Jul 30 15:19:59 2018	(r336912)
+++ head/usr.sbin/newsyslog/tests/legacy_test.sh	Mon Jul 30 15:46:24 2018	(r336913)
@@ -498,6 +498,12 @@ tests_normal_rotate ".gz"
 echo "$LOGFPATH	640  3	   *	@T00  NCJ" > newsyslog.conf
 tests_normal_rotate ".bz2"
 
+echo "$LOGFPATH	640  3	   *	@T00  NCX" > newsyslog.conf
+tests_normal_rotate ".xz"
+
+echo "$LOGFPATH	640  3	   *	@T00  NCY" > newsyslog.conf
+tests_normal_rotate ".zst"
+
 # Normal, archive dir
 echo "$LOGFPATH	640  3	   *	@T00  NC" > newsyslog.conf
 tests_normal_rotate "" "${TMPDIR}/alog/"
@@ -508,6 +514,12 @@ tests_normal_rotate ".gz" "${TMPDIR}/alog/"
 echo "$LOGFPATH	640  3	   *	@T00  NCJ" > newsyslog.conf
 tests_normal_rotate ".bz2" "${TMPDIR}/alog/"
 
+echo "$LOGFPATH	640  3	   *	@T00  NCX" > newsyslog.conf
+tests_normal_rotate ".xz" "${TMPDIR}/alog/"
+
+echo "$LOGFPATH	640  3	   *	@T00  NCY" > newsyslog.conf
+tests_normal_rotate ".zst" "${TMPDIR}/alog/"
+
 # Time based, no archive dir
 echo "$LOGFPATH	640  3	   *	@T00  NC" > newsyslog.conf
 tests_time_rotate
@@ -518,6 +530,12 @@ tests_time_rotate "gz" ""
 echo "$LOGFPATH	640  3	   *	@T00  NCJ" > newsyslog.conf
 tests_time_rotate "bz2" ""
 
+echo "$LOGFPATH	640  3	   *	@T00  NCX" > newsyslog.conf
+tests_time_rotate "xz" ""
+
+echo "$LOGFPATH	640  3	   *	@T00  NCY" > newsyslog.conf
+tests_time_rotate "zst" ""
+
 # Time based, archive dir
 echo "$LOGFPATH	640  3	   *	@T00  NC" > newsyslog.conf
 tests_time_rotate "" "${TMPDIR}/alog/"
@@ -527,6 +545,12 @@ tests_time_rotate "gz" "${TMPDIR}/alog/"
 
 echo "$LOGFPATH	640  3	   *	@T00  NCJ" > newsyslog.conf
 tests_time_rotate "bz2" "${TMPDIR}/alog/"
+
+echo "$LOGFPATH	640  3	   *	@T00  NCX" > newsyslog.conf
+tests_time_rotate "xz" "${TMPDIR}/alog/"
+
+echo "$LOGFPATH	640  3	   *	@T00  NCY" > newsyslog.conf
+tests_time_rotate "zst" "${TMPDIR}/alog/"
 
 # RFC-5424; Normal, no archive dir
 echo "$LOGFPATH5424	640  3	   *	@T00  NCT" > newsyslog.conf



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201807301546.w6UFkOdr020280>