Date: Thu, 7 Aug 2008 14:34:25 GMT From: Balazs NAGY <js@iksz.hu> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/126337: [maintainer-update] sysutils/logrotate: olddir option fix Message-ID: <200808071434.m77EYPtb081598@www.freebsd.org> Resent-Message-ID: <200808071440.m77Ee2gl001835@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 126337 >Category: ports >Synopsis: [maintainer-update] sysutils/logrotate: olddir option fix >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Aug 07 14:40:01 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Balazs NAGY >Release: 7.0-RELEASE >Organization: >Environment: FreeBSD tcb.aranyoroszlan.hu 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008 root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386 >Description: logrotate's path-type options (eg. compress, olddir, just to name a few) fail because FreeBSD's libc implements mbtrowc(3) differently, and returns -2 on empty string. Linux version, however, returns 0. A simple zero-length check added to path check function, which hides this. >How-To-Repeat: >Fix: Patch attached with submission follows: >From 6d3976f0a76ee342114531fd9da63e3e5b294f9c Mon Sep 17 00:00:00 2001 From: Balazs Nagy <js@iksz.hu> Date: Thu, 7 Aug 2008 15:32:06 +0200 Subject: [PATCH] [maintainer-update] olddir fix Because of differences in mbrtowc(3) implementation among platforms, checks against empty strings should be avoided. --- Makefile | 1 + files/patch-aa | 21 +++++++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 7788325..533fadf 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,7 @@ PORTNAME= logrotate PORTVERSION= 3.7.7 +PORTREVISION= 1 CATEGORIES= sysutils MASTER_SITES= https://fedorahosted.org/releases/l/o/logrotate/ DISTNAME= ${PORTNAME}-${PORTVERSION} diff --git a/files/patch-aa b/files/patch-aa index fd9dfbe..fb7868c 100644 --- a/files/patch-aa +++ b/files/patch-aa @@ -1,6 +1,6 @@ -diff -ruN logrotate-3.7.7-orig/config.c logrotate-3.7.7/config.c ---- logrotate-3.7.7-orig/config.c Fri May 9 07:28:59 2008 -+++ logrotate-3.7.7/config.c Sun Jun 22 22:10:25 2008 +diff -u logrotate-3.7.7-orig/config.c logrotate-3.7.7/config.c +--- logrotate-3.7.7-orig/config.c 2008-08-07 15:10:36.000000000 +0200 ++++ logrotate-3.7.7/config.c 2008-08-07 15:11:54.000000000 +0200 @@ -1,5 +1,4 @@ #include <sys/queue.h> -#include <alloca.h> @@ -15,9 +15,18 @@ diff -ruN logrotate-3.7.7-orig/config.c logrotate-3.7.7/config.c #include "basenames.h" #include "log.h" -diff -ruN logrotate-3.7.7-orig/logrotate.c logrotate-3.7.7/logrotate.c ---- logrotate-3.7.7-orig/logrotate.c Wed May 14 10:31:35 2008 -+++ logrotate-3.7.7/logrotate.c Sun Jun 22 22:10:25 2008 +@@ -93,7 +93,7 @@ + + chptr = start; + +- while( (len = mbrtowc(&pwc, chptr, strlen(chptr), NULL)) != 0 ) { ++ while( (len = strlen(chptr)) != 0 && (len = mbrtowc(&pwc, chptr, len, NULL)) != 0 ) { + if( len == (size_t)(-1) || len == (size_t)(-2) || !iswprint(pwc) || iswblank(pwc) ) { + message(MESS_ERROR, "%s:%d bad %s path %s\n", + configFile, lineNum, key, start); +diff -u logrotate-3.7.7-orig/logrotate.c logrotate-3.7.7/logrotate.c +--- logrotate-3.7.7-orig/logrotate.c 2008-08-07 15:10:36.000000000 +0200 ++++ logrotate-3.7.7/logrotate.c 2008-08-07 15:10:43.000000000 +0200 @@ -1,5 +1,4 @@ #include <sys/queue.h> -#include <alloca.h> -- 1.5.6.2 >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808071434.m77EYPtb081598>