RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Ralf S. Engelschall
Root: /v/rpm/cvs Email: [EMAIL PROTECTED]
Module: rpm Date: 11-Jun-2007 08:14:11
Branch: HEAD Handle: 2007061107141100
Modified files:
rpm/popt popt.c
Log:
plug two obvious memory holes (actually there are even more in the
same function inside #ifdef/#endif but I don't want to change the code
too much at this point)
Summary:
Revision Changes Path
1.96 +7 -2 rpm/popt/popt.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/popt/popt.c
============================================================================
$ cvs diff -u -r1.95 -r1.96 popt.c
--- rpm/popt/popt.c 25 May 2007 17:36:23 -0000 1.95
+++ rpm/popt/popt.c 11 Jun 2007 06:14:11 -0000 1.96
@@ -398,7 +398,10 @@
argv[argc] = s;
} else
argv[argc] = findProgramPath(item->argv[0]);
- if (argv[argc++] == NULL) return POPT_ERROR_NOARG;
+ if (argv[argc++] == NULL) {
+ free(argv);
+ return POPT_ERROR_NOARG;
+ }
if (item->argc > 1) {
memcpy(argv + argc, item->argv + 1, sizeof(*argv) * (item->argc - 1));
@@ -444,8 +447,10 @@
#endif
#endif
- if (argv[0] == NULL)
+ if (argv[0] == NULL) {
+ free(argv);
return POPT_ERROR_NOARG;
+ }
#ifdef MYDEBUG
if (_popt_debug)
@@ .
______________________________________________________________________
RPM Package Manager http://rpm5.org
CVS Sources Repository [email protected]