From owner-svn-src-all@freebsd.org Mon Jul 30 15:46:25 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3DF101059F58; Mon, 30 Jul 2018 15:46:25 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E860677190; Mon, 30 Jul 2018 15:46:24 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CA28726563; Mon, 30 Jul 2018 15:46:24 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w6UFkOXm020282; Mon, 30 Jul 2018 15:46:24 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w6UFkOdr020280; Mon, 30 Jul 2018 15:46:24 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <201807301546.w6UFkOdr020280@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Mon, 30 Jul 2018 15:46:24 +0000 (UTC) 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 X-SVN-Group: head X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: in head/usr.sbin/newsyslog: . tests X-SVN-Commit-Revision: 336913 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2018 15:46:25 -0000 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