svn commit: r541751 - in branches/2020Q3/devel/popt: . files
Josh Paetzel
jpaetzel at FreeBSD.org
Thu Jul 9 14:01:08 UTC 2020
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 at unislabs.com daniel.engberg.lists at 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;
More information about the svn-ports-all
mailing list