Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Jul 2020 14:01:07 +0000 (UTC)
From:      Josh Paetzel <jpaetzel@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org
Subject:   svn commit: r541751 - in branches/2020Q3/devel/popt: . files
Message-ID:  <202007091401.069E17nW082407@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jpaetzel
Date: Thu Jul  9 14:01:07 2020
New Revision: 541751
URL: https://svnweb.freebsd.org/changeset/ports/541751

Log:
  MFH: r541348
  
  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
  
  Approved by:	ports-secteam (joneum)

Added:
  branches/2020Q3/devel/popt/files/patch-src_popt.c
     - copied unchanged from r541348, head/devel/popt/files/patch-src_popt.c
  branches/2020Q3/devel/popt/files/patch-src_poptint.h
     - copied unchanged from r541348, head/devel/popt/files/patch-src_poptint.h
Modified:
  branches/2020Q3/devel/popt/Makefile
Directory Properties:
  branches/2020Q3/   (props changed)

Modified: branches/2020Q3/devel/popt/Makefile
==============================================================================
--- branches/2020Q3/devel/popt/Makefile	Thu Jul  9 13:46:15 2020	(r541750)
+++ branches/2020Q3/devel/popt/Makefile	Thu Jul  9 14:01:07 2020	(r541751)
@@ -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>

Copied: branches/2020Q3/devel/popt/files/patch-src_popt.c (from r541348, head/devel/popt/files/patch-src_popt.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2020Q3/devel/popt/files/patch-src_popt.c	Thu Jul  9 14:01:07 2020	(r541751, copy of r541348, head/devel/popt/files/patch-src_popt.c)
@@ -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);

Copied: branches/2020Q3/devel/popt/files/patch-src_poptint.h (from r541348, head/devel/popt/files/patch-src_poptint.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2020Q3/devel/popt/files/patch-src_poptint.h	Thu Jul  9 14:01:07 2020	(r541751, copy of r541348, head/devel/popt/files/patch-src_poptint.h)
@@ -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?202007091401.069E17nW082407>