Date: Mon, 6 Jul 2020 14:46:26 +0000 (UTC) From: Josh Paetzel <jpaetzel@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r541348 - in head/devel/popt: . files Message-ID: <202007061446.066EkQWQ020199@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jpaetzel Date: Mon Jul 6 14:46:26 2020 New Revision: 541348 URL: https://svnweb.freebsd.org/changeset/ports/541348 Log: Fix some regressions in the 1.18 reboot of development. PR: 247529 Submitted by: vvd@unislabs.com daniel.engberg.lists@pyret.net Reported by: tobik MFH: 2020Q3 Added: head/devel/popt/files/patch-src_popt.c (contents, props changed) head/devel/popt/files/patch-src_poptint.h (contents, props changed) Modified: head/devel/popt/Makefile Modified: head/devel/popt/Makefile ============================================================================== --- head/devel/popt/Makefile Mon Jul 6 14:40:49 2020 (r541347) +++ head/devel/popt/Makefile Mon Jul 6 14:46:26 2020 (r541348) @@ -3,6 +3,7 @@ PORTNAME= popt PORTVERSION= 1.18 +PORTREVISION= 1 CATEGORIES= devel MASTER_SITES= http://ftp.rpm.org/popt/releases/popt-1.x/ @@ -23,7 +24,7 @@ INSTALL_TARGET= install-strip USE_LDCONFIG= yes NLS_CONFIGURE_ENABLE= nls -NLS_USES= gettext +NLS_USES= gettext-runtime localbase OPTIONS_SUB= yes .include <bsd.port.mk> Added: head/devel/popt/files/patch-src_popt.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/popt/files/patch-src_popt.c Mon Jul 6 14:46:26 2020 (r541348) @@ -0,0 +1,55 @@ +--- src/popt.c.orig 2020-05-18 07:43:13 UTC ++++ src/popt.c +@@ -168,6 +168,7 @@ poptContext poptGetContext(const char * name, int argc + con->os->next = 1; /* skip argv[0] */ + + con->leftovers = calloc( (size_t)(argc + 1), sizeof(*con->leftovers) ); ++ con->allocLeftovers = argc + 1; + con->options = options; + con->aliases = NULL; + con->numAliases = 0; +@@ -1269,8 +1270,21 @@ int poptGetNextOpt(poptContext con) + con->os->nextArg = xstrdup(origOptString); + return 0; + } +- if (con->leftovers != NULL) /* XXX can't happen */ +- con->leftovers[con->numLeftovers++] = origOptString; ++ if (con->leftovers != NULL) { /* XXX can't happen */ ++ /* One might think we can never overflow the leftovers ++ array. Actually, that's true, as long as you don't ++ use poptStuffArgs()... */ ++ if ((con->numLeftovers + 1) >= (con->allocLeftovers)) { ++ con->allocLeftovers += 10; ++ con->leftovers = ++ realloc(con->leftovers, ++ sizeof(*con->leftovers) * con->allocLeftovers); ++ } ++ con->leftovers[con->numLeftovers++] ++ = xstrdup(origOptString); /* so a free of a stuffed ++ argv doesn't give us a ++ dangling pointer */ ++ } + continue; + } + +@@ -1519,6 +1533,8 @@ poptItem poptFreeItems(poptItem items, int nitems) + + poptContext poptFreeContext(poptContext con) + { ++ int i; ++ + if (con == NULL) return con; + poptResetContext(con); + +@@ -1528,7 +1544,11 @@ poptContext poptFreeContext(poptContext con) + con->execs = poptFreeItems(con->execs, con->numExecs); + con->numExecs = 0; + ++ for (i = 0; i < con->numLeftovers; i++) { ++ con->leftovers[i] = _free(&con->leftovers[i]); ++ } + con->leftovers = _free(con->leftovers); ++ + con->finalArgv = _free(con->finalArgv); + con->appName = _free(con->appName); + con->otherHelp = _free(con->otherHelp); Added: head/devel/popt/files/patch-src_poptint.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/popt/files/patch-src_poptint.h Mon Jul 6 14:46:26 2020 (r541348) @@ -0,0 +1,10 @@ +--- src/poptint.h.orig 2020-05-18 07:43:13 UTC ++++ src/poptint.h +@@ -94,6 +94,7 @@ struct poptContext_s { + struct optionStackEntry * os; + poptArgv leftovers; + int numLeftovers; ++ int allocLeftovers; + int nextLeftover; + const struct poptOption * options; + int restLeftover;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202007061446.066EkQWQ020199>