rpm/rpm-5.3.12-55810-rpmevrcmp-again-grf.patch
2012-02-01 18:08:07 +04:00

32 lines
1.3 KiB
Diff

--- rpm-5.3.12/lib/rpmds.c.55810~ 2011-07-12 11:54:08.000000000 +0200
+++ rpm-5.3.12/lib/rpmds.c 2011-07-13 16:51:59.699924504 +0200
@@ -4333,9 +4333,10 @@ assert((rpmdsFlags(B) & RPMSENSE_SENSEMA
case 'D': ix = RPMEVR_D; /*@switchbreak@*/break;
}
#if defined(RPM_VENDOR_MANDRIVA) /* mdvbz#55810 */
- if(ix == RPMEVR_R && (bFlags & (~RPMSENSE_GREATER & RPMSENSE_EQUAL))
- && *(b->F[ix]) == '\0')
- break;
+ if(ix >= RPMEVR_R && (bFlags & (~RPMSENSE_GREATER & RPMSENSE_EQUAL))
+ && !(ix == RPMEVR_D && (bFlags & RPMSENSE_LESS))
+ && *(b->F[ix]) == '\0')
+ break;
if (a->F[ix] && b->F[ix])
#else
if (a->F[ix] && *a->F[ix] && b->F[ix] && *b->F[ix])
--- rpm-5.3.12/rpmdb/rpmevr.c.55810~ 2011-07-12 11:54:27.000000000 +0200
+++ rpm-5.3.12/rpmdb/rpmevr.c 2011-07-13 16:51:59.700924519 +0200
@@ -286,9 +286,10 @@ assert(b->F[RPMEVR_D] != NULL);
case 'D': ix = RPMEVR_D; /*@switchbreak@*/break;
}
#if defined(RPM_VENDOR_MANDRIVA) /* mdvbz#55810 */
- if(ix == RPMEVR_R && (b->Flags & (~RPMSENSE_GREATER & RPMSENSE_EQUAL))
- && *(b->F[ix]) == '\0')
- break;
+ if(ix >= RPMEVR_R && (b->Flags & (~RPMSENSE_GREATER & RPMSENSE_EQUAL))
+ && !(ix == RPMEVR_D && (b->Flags & RPMSENSE_LESS))
+ && *(b->F[ix]) == '\0')
+ break;
#endif
rc = compare_values(a->F[ix], b->F[ix]);