Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37416190
en ru br
ALT Linux repositórios
S:1.18-alt1
5.0: 1.14-alt4
4.1: 1.14-alt2
4.0: 1.7-alt16
3.0: 1.7-alt13

Group :: Sistema/Bibliotecas
RPM: libpopt

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: popt-20020315-alt-alloc-checks.patch
Download


diff -ur popt-20020315~/popt.c popt-20020315/popt.c
--- popt-20020315~/popt.c	Fri Mar 15 09:29:44 2002
+++ popt-20020315/popt.c	Mon Mar 25 14:01:51 2002
@@ -153,6 +153,8 @@
     if (con == NULL) return NULL;	/* XXX can't happen */
     memset(con, 0, sizeof(*con));
 
+    if ( argc < 1 ) return NULL;
+
     con->os = con->optionStack;
     con->os->argc = argc;
     /*@-dependenttrans -assignexpose@*/	/* FIX: W2DO? */
@@ -174,6 +176,7 @@
     con->numExecs = 0;
     con->finalArgvAlloced = argc * 2;
     con->finalArgv = calloc( con->finalArgvAlloced, sizeof(*con->finalArgv) );
+    if ( !con->finalArgv ) con->finalArgvAlloced = 0;	/* XXX can't happen? */
     con->execAbsolute = 1;
     con->arg_strip = NULL;
 
@@ -273,6 +276,7 @@
 	con->finalArgvAlloced += 10;
 	con->finalArgv = realloc(con->finalArgv,
 			sizeof(*con->finalArgv) * con->finalArgvAlloced);
+	if ( !con->finalArgv ) con->finalArgvCount = con->finalArgvAlloced = 0;	/* XXX can't happen? */
     }
 
     i = con->finalArgvCount++;
@@ -569,6 +573,7 @@
 	    tn += alen;
 	    *te = '\0';
 	    t = realloc(t, tn);
+	    if ( !t ) return NULL;	/* XXX can't happen? */
 	    te = t + strlen(t);
 	    strncpy(te, a, alen); te += alen;
 	    continue;
@@ -933,6 +938,7 @@
 	    con->finalArgvAlloced += 10;
 	    con->finalArgv = realloc(con->finalArgv,
 			    sizeof(*con->finalArgv) * con->finalArgvAlloced);
+	    if ( !con->finalArgv ) con->finalArgvCount = con->finalArgvAlloced = 0;	/* XXX can't happen? */
 	}
 
 	if (con->finalArgv != NULL)
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009