---- ./lib/depends.c.org Mon Jun 25 17:59:49 2001
-+++ ./lib/depends.c Mon Jun 25 18:04:00 2001
-@@ -335,18 +335,21 @@
+--- rpm-4.0.4/lib/depends.c~org Wed Aug 1 22:14:31 2001
++++ rpm-4.0.4/lib/depends.c Wed Aug 1 22:15:57 2001
+@@ -335,18 +335,24 @@
for (dirNum = 0; dirNum < numDirs; dirNum++) {
dirNeedle.dirName = (char *) dirNames[dirNum];
dirNeedle.dirNameLen = strlen(dirNames[dirNum]);
+ dirMatch->files = NULL;
+ dirMatch->numFiles = 0;
al->numDirs++;
++ for(i=0;i<dirNum;i++)
++ if(dirMapping[i] >= dirMatch - al->dirs)
++ dirMapping[i]++;
}
+ dirMapping[dirNum] = dirMatch - al->dirs;
+
}
free(dirNames);
-@@ -374,9 +377,6 @@
+@@ -374,9 +380,6 @@
first = last + 1;
}
}
---- ./lib/misc.c.org Mon Jun 25 17:59:49 2001
-+++ ./lib/misc.c Mon Jun 25 18:04:36 2001
+--- ./lib/misc.c~org Wed Aug 1 22:14:31 2001
++++ ./lib/misc.c Wed Aug 1 22:13:33 2001
@@ -869,3 +869,39 @@
&pEVR, 1);
}
+ else
+ return (void *) p;
+ }
-+ if((long)l > (long)nmemb-1)
++ if(nmemb == 0 || l > nmemb-1)
+ return NULL;
+ p = (void *) (((const char *) base) + (l * size));
+ return (void *)p;
+}
+
---- ./lib/misc.h.org Mon Jun 25 17:59:49 2001
-+++ ./lib/misc.h Mon Jun 25 18:01:53 2001
+--- ./lib/misc.h~org Wed Aug 1 22:14:31 2001
++++ ./lib/misc.h Wed Aug 1 22:13:33 2001
@@ -102,6 +102,12 @@
*/
void providePackageNVR(Header h);