Date: Tue, 31 Aug 2004 17:12:42 -0700 (PDT) From: Seth Kingsley <sethk@meowfishies.com> To: FreeBSD-gnats-submit@FreeBSD.org Cc: adamw@FreeBSD.org Subject: ports/71213: [MAINTAINER PATCH]: sysutils/bpm fails to handle new INDEX file Message-ID: <20040901001242.B4C8CDA88A@toxic.magnesium.net> Resent-Message-ID: <200409010020.i810KG5J040341@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 71213 >Category: ports >Synopsis: [MAINTAINER PATCH]: sysutils/bpm fails to handle new INDEX file >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Wed Sep 01 00:20:16 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Seth Kingsley >Release: FreeBSD 5.1-RELEASE i386 >Organization: >Environment: System: FreeBSD toxic.magnesium.net 5.1-RELEASE FreeBSD 5.1-RELEASE #1: Thu Jun 26 13:43:26 PDT 2003 natey@newtoxic.magnesium.net:/data/world/obj/data/world/src/sys/TOXIC i386 >Description: The recently comitted BPM port fails to handle the new INDEX file format, which has had several fields added to it. In addition, it reacts badly when parse errors occur on the INDEX file, resulting in double free()s. The patch below works around both of these problems until the next formal release. >How-To-Repeat: Run sysutils/bpm on a recent ports collection. >Fix: Index: Makefile =================================================================== RCS file: /stor/ncvs/ports/sysutils/bpm/Makefile,v retrieving revision 1.2 diff -u -d -p -r1.2 Makefile --- Makefile 24 Aug 2004 14:18:53 -0000 1.2 +++ Makefile 31 Aug 2004 02:14:19 -0000 @@ -7,6 +7,7 @@ PORTNAME= bpm PORTVERSION= 0.4.1b +PORTREVISION= 1 CATEGORIES= sysutils MASTER_SITES= http://www.meowfishies.com/code/bpm/ EXTRACT_SUFX= .tgz Index: files/patch-src::refresh.c =================================================================== RCS file: /stor/ncvs/ports/sysutils/bpm/files/patch-src::refresh.c,v retrieving revision 1.1 diff -u -d -p -r1.1 patch-src::refresh.c --- files/patch-src::refresh.c 24 Aug 2004 19:21:12 -0000 1.1 +++ files/patch-src::refresh.c 31 Aug 2004 02:13:53 -0000 @@ -1,7 +1,7 @@ ---- src/refresh.c.orig Tue Aug 24 15:18:57 2004 -+++ src/refresh.c Tue Aug 24 15:20:12 2004 +--- src/refresh.c.orig Mon Aug 23 19:40:08 2004 ++++ src/refresh.c Mon Aug 30 19:12:50 2004 @@ -62,7 +62,11 @@ - __RCSID("$Id: patch-src::refresh.c,v 1.1 2004/08/24 19:21:12 adamw Exp $"); + __RCSID("$Id: refresh.c,v 1.32 2004/08/24 02:40:08 sethk Exp $"); /* XXX use libinstall/lib.h */ +#if __FreeBSD_version >= 500036 @@ -12,3 +12,26 @@ #define INDEX_MAXLN 4096 #define DB_DIR "/var/db/pkg" #define ITER_BYTES (128 * 1024) +@@ -183,10 +187,12 @@ + if (*sp == '|') + ++i; + +- if (i != (PFIELD_NFIELD - 1)) ++ if (i < (PFIELD_NFIELD - 1)) + { + #ifdef DEBUG +- warnx("invalid number of fields"); ++ warnx("invalid number of fields (%d should be %d)", ++ i + 1, ++ PFIELD_NFIELD); + #endif /* DEBUG */ + return FALSE; + } +@@ -320,7 +326,6 @@ + + if (_refresh_index_parse(ln, portdp, rdp) != TRUE) + { +- _refresh_portfree(portdp); + #ifdef DEBUG + warnx("%s:%u: invalid format", INDEX_FN, rdp->rd_linec); + #endif /* DEBUG */ >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040901001242.B4C8CDA88A>