Handle empty argv passed to rpmdsDupArgv()
authorPanu Matilainen <pmatilai@redhat.com>
Thu, 26 Feb 2009 08:49:38 +0000 (10:49 +0200)
committerPanu Matilainen <pmatilai@redhat.com>
Thu, 26 Feb 2009 08:49:38 +0000 (10:49 +0200)
- same as 94552b96256c3620b4be407c501d0d926c081963, apt-rpm expects to
  pass empty version as NULL to rpmdsSingle()

lib/rpmds.c

index 02b539c..bc829f4 100644 (file)
@@ -508,15 +508,14 @@ const char ** rpmdsDupArgv(const char ** argv, int argc)
 
     if (argv == NULL)
        return NULL;
-    for (ac = 0; ac < argc; ac++) {
-assert(argv[ac] != NULL);
+    for (ac = 0; ac < argc && argv[ac]; ac++) {
        nb += strlen(argv[ac]) + 1;
     }
     nb += (ac + 1) * sizeof(*av);
 
     av = xmalloc(nb);
     t = (char *) (av + ac + 1);
-    for (ac = 0; ac < argc; ac++) {
+    for (ac = 0; ac < argc && argv[ac]; ac++) {
        av[ac] = t;
        t = stpcpy(t, argv[ac]) + 1;
     }