SOURCES (rpm-4_5): rpm-rpmte-segv.patch (NEW) - fix segv when loops in pkg ...

glen glen at pld-linux.org
Thu Aug 21 22:57:05 CEST 2008


Author: glen                         Date: Thu Aug 21 20:57:05 2008 GMT
Module: SOURCES                       Tag: rpm-4_5
---- Log message:
- fix segv when loops in pkg deps

---- Files affected:
SOURCES:
   rpm-rpmte-segv.patch (NONE -> 1.1.2.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/rpm-rpmte-segv.patch
diff -u /dev/null SOURCES/rpm-rpmte-segv.patch:1.1.2.1
--- /dev/null	Thu Aug 21 22:57:05 2008
+++ SOURCES/rpm-rpmte-segv.patch	Thu Aug 21 22:56:59 2008
@@ -0,0 +1,36 @@
+Index: lib/depends.c
+===================================================================
+RCS file: /v/rpm/cvs/rpm/lib/depends.c,v
+retrieving revision 1.403
+retrieving revision 1.402
+diff -w -u -r1.403 -r1.402
+--- lib/depends.c	6 Jun 2008 09:14:55 -0000	1.403
++++ lib/depends.c	30 May 2008 21:25:31 -0000	1.402
+@@ -1926,22 +1926,26 @@
+ 	    continue;
+ 	/*@=abstractcompare@*/
+ 
+-	requires = rpmteDS((rpmteType(p) == TR_REMOVED ? q : p), tsi->tsi_tagn);
++	requires = rpmteDS(p, tsi->tsi_tagn);
+ 	if (requires == NULL) continue;		/* XXX can't happen */
+ 
+ 	(void) rpmdsSetIx(requires, tsi->tsi_reqx);
+ 
+ 	Flags = rpmdsFlags(requires);
+ 
++#if 0
+ 	dp = rpmdsNewDNEVR( identifyDepend(Flags), requires);
++#endif
+ 
+ 	/*
+ 	 * Attempt to unravel a dependency loop by eliminating Requires's.
+ 	 */
+ 	if (zap) {
++#if 0
+ 	    rpmlog(msglvl,
+ 			_("removing %s \"%s\" from tsort relations.\n"),
+ 			(rpmteNEVRA(p) ?  rpmteNEVRA(p) : "???"), dp);
++#endif
+ 	    rpmteTSI(p)->tsi_count--;
+ 	    if (tsi_prev) tsi_prev->tsi_next = tsi->tsi_next;
+ 	    tsi->tsi_next = NULL;
================================================================


More information about the pld-cvs-commit mailing list