From owner-freebsd-ports-bugs@FreeBSD.ORG Mon Feb 19 21:40:05 2007 Return-Path: X-Original-To: freebsd-ports-bugs@hub.freebsd.org Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 834A216DED2 for ; Mon, 19 Feb 2007 21:40:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id 3384713C474 for ; Mon, 19 Feb 2007 21:40:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id l1JLe49L076112 for ; Mon, 19 Feb 2007 21:40:04 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id l1JLe4bx076111; Mon, 19 Feb 2007 21:40:04 GMT (envelope-from gnats) Date: Mon, 19 Feb 2007 21:40:04 GMT Message-Id: <200702192140.l1JLe4bx076111@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org From: David Sze Cc: Subject: Re: ports/109297: [PATCH] Update port: dns/updatedd version 2.6 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: David Sze List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Feb 2007 21:40:05 -0000 The following reply was made to PR ports/109297; it has been noted by GNATS. From: David Sze To: bug-followup@FreeBSD.org, Jason DiCioccio Cc: Subject: Re: ports/109297: [PATCH] Update port: dns/updatedd version 2.6 Date: Mon, 19 Feb 2007 15:17:44 -0600 --gBBFr7Ir9EOA20Yy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Try the attached update. It appears the segfault was due to the author relying on semantics of vsprintf that are only true on Linux (passing NULL for the first parameter to get the formatted string length). The port now has a patch to use the BSD-specific vasprintf instead. It looks like only the ods and tzo plugins were affected. I don't have accounts with either of those services so I can't test it thoroughly. I only use dyndns and that works fine. --gBBFr7Ir9EOA20Yy Content-Type: application/x-shar Content-Disposition: attachment; filename="updatedd-2.6.shar" Content-Transfer-Encoding: quoted-printable # This is a shell archive. Save it in a file, remove anything before=0A# t= his line, and then unpack it by entering "sh file". Note, it may=0A# creat= e directories; files and directories will be owned by you and=0A# have defa= ult permissions.=0A#=0A# This archive contains:=0A#=0A# updatedd=0A# update= dd/Makefile=0A# updatedd/distinfo=0A# updatedd/pkg-descr=0A# updatedd/pkg-p= list=0A# updatedd/files=0A# updatedd/files/disable-portdocs.patch=0A# updat= edd/files/patch-updatedd-wrapper-Makefile.in=0A# updatedd/files/patch-inclu= de-dprintf.h=0A#=0Aecho c - updatedd=0Amkdir -p updatedd > /dev/null 2>&1= =0Aecho x - updatedd/Makefile=0Ased 's/^X//' >updatedd/Makefile << 'END-of-= updatedd/Makefile'=0AX# New ports collection makefile for: updatedd=0AX# Da= te created: 2003-12-02=0AX# Whom: geniusj@ods.org=0AX#=0AX# $FreeBSD: po= rts/dns/updatedd/Makefile,v 1.4 2005/04/12 03:25:20 obrien Exp $=0AX#=0AX= =0AXPORTNAME=3D updatedd=0AXPORTVERSION=3D 2.6=0AXCATEGORIES=3D dns=0AXMAST= ER_SITES=3D ${MASTER_SITE_SAVANNAH}=0AXMASTER_SITE_SUBDIR=3D ${PORTNAME}=0A= XDISTNAME=3D ${PORTNAME}_${PORTVERSION}=0AX=0AXMAINTAINER=3D geniusj@ods.or= g=0AXCOMMENT=3D Dynamic DNS Update Client supporting multiple services=0AX= =0AXUSE_PERL5=3D yes=0AXUSE_GMAKE=3D yes=0AXGNU_CONFIGURE=3D yes=0AXCONFIGU= RE_TARGET=3D --build=3D${MACHINE_ARCH}-portbld-freebsd${OSREL}=0AXCONFIGURE= _ARGS+=3D --mandir=3D${PREFIX}/man=0AX=0AXWRKSRC=3D ${WRKDIR}/${PORTNAME}-= ${PORTVERSION}=0AX=0AXMAN1=3D updatedd.1 updatedd-wrapper.1=0AXMAN5=3D up= datedd-wrapper.conf.5=0AX=0AX.if defined(NOPORTDOCS)=0AXEXTRA_PATCHES+=3D $= {PATCHDIR}/disable-portdocs.patch=0AX.endif=0AX=0AXpost-install:=0AX @if [ = ! -f ${PREFIX}/etc/updatedd-wrapper.conf ]; then \=0AX ${CP} -p ${PREFIX}/= etc/updatedd-wrapper.conf.sample ${PREFIX}/etc/updatedd-wrapper.conf ; \=0A= X fi=0AX=0AX.include =0AEND-of-updatedd/Makefile=0Aecho x - up= datedd/distinfo=0Ased 's/^X//' >updatedd/distinfo << 'END-of-updatedd/disti= nfo'=0AXMD5 (updatedd_2.6.tar.gz) =3D 95655596eb6e0e381d60a458f6a45fee=0AXS= HA256 (updatedd_2.6.tar.gz) =3D 9d240c7e9fcc3f6cb1d32410ca2dee10d359c53f1a5= a30d8f3ec49b18b73f1d0=0AXSIZE (updatedd_2.6.tar.gz) =3D 667104=0AEND-of-upd= atedd/distinfo=0Aecho x - updatedd/pkg-descr=0Ased 's/^X//' >updatedd/pkg-d= escr << 'END-of-updatedd/pkg-descr'=0AXUpdatedd is a program for Unix like = operating systems to=0AXupdate dynamic DNS records. It supports multiple s= ervices,=0AXincluding:=0AX=0AX changeip.com=0AX dyndns.org=0AX eurodyndns.o= rg=0AX ovh.com,=0AX no-ip.org=0AX ods.org=0AX hn.org=0AX regfish.com=0AX tz= o.com=0AX=0AXEach service is represented by a plugin, therefore it is=0AXve= ry simple to add support for additional services.=0AX=0AXFurthermore the pa= ckage includes a wrapper for updatedd=0AXcalled `updatedd-wrapper'. It pro= vides support for=0AXconfiguration files and IP adddress caching.=0AX=0AXAu= thor: Philipp Benner =0AXWWW: http://upda= tedd.philipp-benner.de=0AEND-of-updatedd/pkg-descr=0Aecho x - updatedd/pkg-= plist=0Ased 's/^X//' >updatedd/pkg-plist << 'END-of-updatedd/pkg-plist'=0AX= bin/updatedd=0AXbin/updatedd-wrapper=0AX@unexec if cmp -s %D/etc/updatedd-w= rapper.conf.sample %D/etc/updatedd-wrapper.conf; then rm -f %D/etc/updatedd= -wrapper.conf; fi=0AXetc/updatedd-wrapper.conf.sample=0AX@exec if [ ! -f %D= /etc/updatedd-wrapper.conf ] ; then cp -p %D/%F %B/updatedd-wrapper.conf; f= i=0AXlib/updatedd/libchangeip.a=0AXlib/updatedd/libchangeip.la=0AXlib/updat= edd/libchangeip.so=0AXlib/updatedd/libchangeip.so.0=0AXlib/updatedd/libdynd= ns.a=0AXlib/updatedd/libdyndns.la=0AXlib/updatedd/libdyndns.so=0AXlib/updat= edd/libdyndns.so.0=0AXlib/updatedd/libeurodyndns.a=0AXlib/updatedd/libeurod= yndns.la=0AXlib/updatedd/libeurodyndns.so=0AXlib/updatedd/libeurodyndns.so.= 0=0AXlib/updatedd/libhn.a=0AXlib/updatedd/libhn.la=0AXlib/updatedd/libhn.so= =0AXlib/updatedd/libhn.so.0=0AXlib/updatedd/libnoip.a=0AXlib/updatedd/libno= ip.la=0AXlib/updatedd/libnoip.so=0AXlib/updatedd/libnoip.so.0=0AXlib/update= dd/libods.a=0AXlib/updatedd/libods.la=0AXlib/updatedd/libods.so=0AXlib/upda= tedd/libods.so.0=0AXlib/updatedd/libovh.a=0AXlib/updatedd/libovh.la=0AXlib/= updatedd/libovh.so=0AXlib/updatedd/libovh.so.0=0AXlib/updatedd/libregfish.a= =0AXlib/updatedd/libregfish.la=0AXlib/updatedd/libregfish.so=0AXlib/updated= d/libregfish.so.0=0AXlib/updatedd/libtzo.a=0AXlib/updatedd/libtzo.la=0AXlib= /updatedd/libtzo.so=0AXlib/updatedd/libtzo.so.0=0AX@dirrm lib/updatedd=0AXi= nclude/libchangeip.h=0AXinclude/libdyndns.h=0AXinclude/libeurodyndns.h=0AXi= nclude/libhn.h=0AXinclude/libnoip.h=0AXinclude/libods.h=0AXinclude/libovh.h= =0AXinclude/libregfish.h=0AXinclude/libtzo.h=0AX%%DATADIR%%/interface.pl=0A= X%%DATADIR%%/ipserv.pl=0AX@dirrm %%DATADIR%%=0AX%%PORTDOCS%%%%DOCSDIR%%/upd= atedd-2.4-english.pdf=0AX%%PORTDOCS%%%%DOCSDIR%%/updatedd-2.4-german.pdf=0A= X%%PORTDOCS%%%%DOCSDIR%%/updatedd-pppd-rc=0AX%%PORTDOCS%%@dirrm %%DOCSDIR%%= =0AEND-of-updatedd/pkg-plist=0Aecho c - updatedd/files=0Amkdir -p updatedd/= files > /dev/null 2>&1=0Aecho x - updatedd/files/disable-portdocs.patch=0As= ed 's/^X//' >updatedd/files/disable-portdocs.patch << 'END-of-updatedd/file= s/disable-portdocs.patch'=0AX--- Makefile.in.orig Fri Sep 15 10:19:08 2006= =0AX+++ Makefile.in Sun Feb 18 15:06:01 2007=0AX@@ -189,7 +189,7 @@=0AX tar= get_os =3D @target_os@=0AX target_vendor =3D @target_vendor@=0AX @COND_PERL= _TRUE@MAYBE_PERL =3D updatedd-wrapper scripts=0AX-SUBDIRS =3D libupdatedd-e= xception src src/plugins include $(MAYBE_PERL) Documentation=0AX+SUBDIRS = =3D libupdatedd-exception src src/plugins include $(MAYBE_PERL)=0AX =0AX #d= istdir =3D ../$(PACKAGE)-$(VERSION)=0AX EXTRA_DIST =3D debian/compat debian= /control debian/copyright debian/postinst debian/rules \=0AEND-of-updatedd/= files/disable-portdocs.patch=0Aecho x - updatedd/files/patch-updatedd-wrapp= er-Makefile.in=0Ased 's/^X//' >updatedd/files/patch-updatedd-wrapper-Makefi= le.in << 'END-of-updatedd/files/patch-updatedd-wrapper-Makefile.in'=0AX--- = updatedd-wrapper/Makefile.in.orig Fri Sep 15 10:19:07 2006=0AX+++ updatedd-= wrapper/Makefile.in Sun Feb 18 15:19:45 2007=0AX@@ -466,8 +466,8 @@=0AX ins= tall-data-local:=0AX if test ! -e $(DESTDIR)$(sysconfdir)/$(conf); then \= =0AX $(INSTALL) -d $(DESTDIR)$(sysconfdir); \=0AX- $(INSTALL) -m 600 u= pdatedd-wrapper.conf $(DESTDIR)$(sysconfdir); \=0AX fi=0AX+ $(INSTALL) -m = 600 updatedd-wrapper.conf $(DESTDIR)$(sysconfdir)/updatedd-wrapper.conf.sam= ple=0AX =0AX uninstall-local:=0AX $(RM) $(DESTDIR)$(sysconfdir)/updatedd-w= rapper.conf=0AEND-of-updatedd/files/patch-updatedd-wrapper-Makefile.in=0Aec= ho x - updatedd/files/patch-include-dprintf.h=0Ased 's/^X//' >updatedd/file= s/patch-include-dprintf.h << 'END-of-updatedd/files/patch-include-dprintf.h= '=0AX--- include/dprintf.h.orig Fri Sep 8 06:03:14 2006=0AX+++ include/dpr= intf.h Mon Feb 19 16:00:43 2007=0AX@@ -40,13 +40,9 @@=0AX va_list va;=0AX = =0AX va_start(va, fmt);=0AX- n =3D vsprintf(NULL, fmt, va);=0AX- if(n > MA= XLEN)=0AX+ n =3D vasprintf(&buffer, fmt, va);=0AX+ if(-1 =3D=3D n)=0AX st= d_err(NONE, "dprintf() failed: string is too long");=0AX- if((buffer =3D (c= har *)malloc((n+1) * sizeof(char))) =3D=3D NULL)=0AX- std_err(PERR, "mallo= c() failed");=0AX- (void)vsnprintf(buffer, n+1, fmt, va);=0AX- *(buffer+n) = =3D '\0';=0AX va_end(va);=0AX =0AX if(write(s, buffer, n) =3D=3D -1)=0AEN= D-of-updatedd/files/patch-include-dprintf.h=0Aexit=0A=0A --gBBFr7Ir9EOA20Yy--