From c283e789b72a69f1e0051cce19aaf171d9ad7980 Mon Sep 17 00:00:00 2001 From: jbj Date: Mon, 7 Aug 2000 19:38:19 +0000 Subject: [PATCH] - fix: segfault when globbing on "" (#15593). CVS patchset: 4036 CVS date: 2000/08/07 19:38:19 --- CHANGES | 1 + lib/misc.c | 18 +++++++++++------- po/rpm.pot | 2 +- rpm.spec | 5 ++++- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/CHANGES b/CHANGES index 786963d..f27cfdd 100644 --- a/CHANGES +++ b/CHANGES @@ -88,6 +88,7 @@ - fix: segfault on erase if filestates is missing in header (#14679). - fix: popt POST callbacks typo. - fix: -Va broken, make db cursors per-iterator, not per-dbi. + - fix: segfault when globbing on "" (#15593). 3.0.4 -> 3.0.5 - configure.in fiddles for BSD systems (Patrick Schoo). diff --git a/lib/misc.c b/lib/misc.c index 89fa3f5..5d5b265 100644 --- a/lib/misc.c +++ b/lib/misc.c @@ -539,7 +539,7 @@ int rpmGlob(const char * patterns, int * argcPtr, const char *** argvPtr) if (argc == 0) argv = xmalloc((argc+2) * sizeof(*argv)); else - argv = xrealloc(argv, (argc+2) * sizeof(*argv)); + argv = xrealloc(argv, (argc+1) * sizeof(*argv)); if (_debug) fprintf(stderr, "*** rpmGlob argv[%d] \"%s\"\n", argc, av[j]); argv[argc++] = xstrdup(av[j]); @@ -596,12 +596,16 @@ fprintf(stderr, "*** rpmGlob argv[%d] \"%s\"\n", argc, globURL); Globfree(&gl); xfree(globURL); } - argv[argc] = NULL; - if (argvPtr) - *argvPtr = argv; - if (argcPtr) - *argcPtr = argc; - rc = 0; + if (argv != NULL && argc > 0) { + argv[argc] = NULL; + if (argvPtr) + *argvPtr = argv; + if (argcPtr) + *argcPtr = argc; + rc = 0; + } else + rc = 1; + exit: if (av) diff --git a/po/rpm.pot b/po/rpm.pot index e4252d6..968c07e 100644 --- a/po/rpm.pot +++ b/po/rpm.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2000-08-04 15:48-0400\n" +"POT-Creation-Date: 2000-08-07 15:28-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/rpm.spec b/rpm.spec index 78b7700..b87bffa 100644 --- a/rpm.spec +++ b/rpm.spec @@ -8,7 +8,7 @@ Summary: The Red Hat package management system. Name: rpm %define version 4.0 Version: %{version} -Release: 0.66 +Release: 0.67 Group: System Environment/Base Source: ftp://ftp.rpm.org/pub/rpm/dist/rpm-3.0.x/rpm-%{version}.tar.gz Copyright: GPL @@ -266,6 +266,9 @@ fi %{__prefix}/include/popt.h %changelog +* Mon Aug 7 2000 Jeff Johnson +- fix: segfault when globbing on "" (#15593). + * Fri Aug 4 2000 Jeff Johnson - fix: popt POST callbacks typo. - fix: -Va broken, make db cursors per-iterator, not per-dbi. -- 2.7.4