]> git.pld-linux.org Git - packages/rpm.git/commitdiff
- patch from jbj that fixes by re-malloc of rpmdsN()
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Wed, 23 May 2007 18:26:40 +0000 (18:26 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    rpm-Nmalloc.patch -> 1.1

rpm-Nmalloc.patch [new file with mode: 0644]

diff --git a/rpm-Nmalloc.patch b/rpm-Nmalloc.patch
new file mode 100644 (file)
index 0000000..29c97b8
--- /dev/null
@@ -0,0 +1,156 @@
+Index: depends.c
+===================================================================
+RCS file: /cvs/devel/rpm/lib/depends.c,v
+retrieving revision 1.325.2.78
+diff -u -b -B -w -p -r1.325.2.78 depends.c
+--- rpm/lib/depends.c  16 May 2007 11:47:44 -0000      1.325.2.78
++++ rpm/lib/depends.c  22 May 2007 11:41:02 -0000
+@@ -1264,12 +1264,12 @@ static int checkPackageDeps(rpmts ts, co
+  * Adding: check name/provides dep against each conflict match,
+  * Erasing: check name/provides/filename dep against each requiredby match.
+  * @param ts          transaction set
+- * @param dep         dependency name
++ * @param depName     dependency name
+  * @param mi          rpm database iterator
+  * @param adding      dependency is from added package set?
+  * @return            0 no problems found
+  */
+-static int checkPackageSet(rpmts ts, const char * dep,
++static int checkPackageSet(rpmts ts, const char * depName,
+               /*@only@*/ /*@null@*/ rpmdbMatchIterator mi, int adding)
+       /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
+       /*@modifies ts, mi, rpmGlobalMacroContext, fileSystem, internalState @*/
+@@ -1307,7 +1307,7 @@ static int checkPackageSet(rpmts ts, con
+       rc = checkPackageDeps(ts, pkgNEVRA,
+               requires, conflicts, dirnames, linktos,
+-              dep, tscolor, adding);
++              depName, tscolor, adding);
+       linktos = rpmdsFree(linktos);
+       dirnames = rpmdsFree(dirnames);
+@@ -1328,10 +1328,10 @@ static int checkPackageSet(rpmts ts, con
+ /**
+  * Check to-be-erased dependencies against installed requires.
+  * @param ts          transaction set
+- * @param dep         requires name
++ * @param depName     requires name
+  * @return            0 no problems found
+  */
+-static int checkDependentPackages(rpmts ts, const char * dep)
++static int checkDependentPackages(rpmts ts, const char * depName)
+       /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
+       /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/
+ {
+@@ -1340,8 +1340,8 @@ static int checkDependentPackages(rpmts 
+     /* XXX rpmdb can be closed here, avoid error msg. */
+     if (rpmtsGetRdb(ts) != NULL) {
+       rpmdbMatchIterator mi;
+-      mi = rpmtsInitIterator(ts, RPMTAG_REQUIRENAME, dep, 0);
+-      rc = checkPackageSet(ts, dep, mi, 0);
++      mi = rpmtsInitIterator(ts, RPMTAG_REQUIRENAME, depName, 0);
++      rc = checkPackageSet(ts, depName, mi, 0);
+     }
+     return rc;
+ }
+@@ -1349,10 +1349,10 @@ static int checkDependentPackages(rpmts 
+ /**
+  * Check to-be-added dependencies against installed conflicts.
+  * @param ts          transaction set
+- * @param dep         conflicts name
++ * @param depName     conflicts name
+  * @return            0 no problems found
+  */
+-static int checkDependentConflicts(rpmts ts, const char * dep)
++static int checkDependentConflicts(rpmts ts, const char * depName)
+       /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
+       /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/
+ {
+@@ -1361,8 +1361,8 @@ static int checkDependentConflicts(rpmts
+     /* XXX rpmdb can be closed here, avoid error msg. */
+     if (rpmtsGetRdb(ts) != NULL) {
+       rpmdbMatchIterator mi;
+-      mi = rpmtsInitIterator(ts, RPMTAG_CONFLICTNAME, dep, 0);
+-      rc = checkPackageSet(ts, dep, mi, 1);
++      mi = rpmtsInitIterator(ts, RPMTAG_CONFLICTNAME, depName, 0);
++      rc = checkPackageSet(ts, depName, mi, 1);
+     }
+     return rc;
+@@ -2277,6 +2277,7 @@ assert(newOrderCount == ts->orderCount);
+ int rpmtsCheck(rpmts ts)
+ {
++    const char * depName = NULL;;
+     rpmdepFlags depFlags = rpmtsDFlags(ts);
+     uint_32 tscolor = rpmtsColor(ts);
+     rpmdbMatchIterator mi = NULL;
+@@ -2331,17 +2332,15 @@ int rpmtsCheck(rpmts ts)
+       provides = rpmdsInit(provides);
+       if (provides != NULL)
+       while (rpmdsNext(provides) >= 0) {
+-          const char * Name;
+-
+-          if ((Name = rpmdsN(provides)) == NULL)
+-              /*@innercontinue@*/ continue;   /* XXX can't happen */
++          depName = _free(depName);
++          depName = xstrdup(rpmdsN(provides));
+ #ifdef        NOTYET
+           if (rpmdsNSType(provides) == RPMNS_TYPE_ENVVAR) {
+               const char * EVR = rpmdsEVR(provides);
+               if (rpmdsNegateRC(provides, 0))
+                   EVR = NULL;
+-              rc = envPut(Name, EVR);
++              rc = envPut(depName, EVR);
+               if (!rc)
+                   /*@innercontinue@*/ continue;
+               /*@innerbreak@*/ break;
+@@ -2349,7 +2348,7 @@ int rpmtsCheck(rpmts ts)
+ #endif
+           /* Adding: check provides key against conflicts matches. */
+-          if (!checkDependentConflicts(ts, Name))
++          if (!checkDependentConflicts(ts, depName))
+               /*@innercontinue@*/ continue;
+           rc = 1;
+           /*@innerbreak@*/ break;
+@@ -2377,13 +2376,11 @@ int rpmtsCheck(rpmts ts)
+       provides = rpmdsInit(provides);
+       if (provides != NULL)
+       while (rpmdsNext(provides) >= 0) {
+-          const char * Name;
+-
+-          if ((Name = rpmdsN(provides)) == NULL)
+-              /*@innercontinue@*/ continue;   /* XXX can't happen */
++          depName = _free(depName);
++          depName = xstrdup(rpmdsN(provides));
+           /* Erasing: check provides against requiredby matches. */
+-          if (!checkDependentPackages(ts, Name))
++          if (!checkDependentPackages(ts, depName))
+               /*@innercontinue@*/ continue;
+           rc = 1;
+           /*@innerbreak@*/ break;
+@@ -2395,10 +2392,10 @@ int rpmtsCheck(rpmts ts)
+       fi = rpmteFI(p, RPMTAG_BASENAMES);
+       fi = rpmfiInit(fi, 0);
+       while (rpmfiNext(fi) >= 0) {
+-          const char * fn = rpmfiFN(fi);
+-
++          depName = _free(depName);
++          depName = xstrdup(rpmfiFN(fi));
+           /* Erasing: check filename against requiredby matches. */
+-          if (!checkDependentPackages(ts, fn))
++          if (!checkDependentPackages(ts, depName))
+               /*@innercontinue@*/ continue;
+           rc = 1;
+           /*@innerbreak@*/ break;
+@@ -2429,6 +2426,7 @@ int rpmtsCheck(rpmts ts)
+ exit:
+     mi = rpmdbFreeIterator(mi);
+     pi = rpmtsiFree(pi);
++    depName = _free(depName);
+     (void) rpmswExit(rpmtsOp(ts, RPMTS_OP_CHECK), 0);
This page took 0.062654 seconds and 4 git commands to generate.