summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES3
-rw-r--r--lib/psm.c10
-rw-r--r--lib/transaction.c10
-rw-r--r--rpmdb/rpmdb.c4
4 files changed, 16 insertions, 11 deletions
diff --git a/CHANGES b/CHANGES
index 806f3fbc4..a8bed2e85 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,9 @@
- don't use error string after gzclose (Dmitry V. Levin).
- only internal Berkeley db from now on.
- revive "make dist".
+ - fix: added index size wrong iff _transaction_color != 0/3 (#103865).
+ - fix: escape '+' in regex patterns through RPMMIRE_DEFAULT (#103851).
+ - RPMMIRE_DEFAULT is overkill, use RPMMIRE_STRCMP instead (#103851).
4.2.1 -> 4.2.2:
- unify signal handling in librpmio, use condvar to deliver signal.
diff --git a/lib/psm.c b/lib/psm.c
index aeadef50d..48f0ad281 100644
--- a/lib/psm.c
+++ b/lib/psm.c
@@ -1210,16 +1210,16 @@ rpmRC rpmpsmStage(rpmpsm psm, pkgStage stage)
assert(psm->mi == NULL);
psm->mi = rpmtsInitIterator(ts, RPMTAG_NAME, rpmteN(psm->te), 0);
- xx = rpmdbSetIteratorRE(psm->mi, RPMTAG_EPOCH, RPMMIRE_DEFAULT,
+ xx = rpmdbSetIteratorRE(psm->mi, RPMTAG_EPOCH, RPMMIRE_STRCMP,
rpmteE(psm->te));
- xx = rpmdbSetIteratorRE(psm->mi, RPMTAG_VERSION, RPMMIRE_DEFAULT,
+ xx = rpmdbSetIteratorRE(psm->mi, RPMTAG_VERSION, RPMMIRE_STRCMP,
rpmteV(psm->te));
- xx = rpmdbSetIteratorRE(psm->mi, RPMTAG_RELEASE, RPMMIRE_DEFAULT,
+ xx = rpmdbSetIteratorRE(psm->mi, RPMTAG_RELEASE, RPMMIRE_STRCMP,
rpmteR(psm->te));
if (tscolor) {
- xx = rpmdbSetIteratorRE(psm->mi, RPMTAG_ARCH, RPMMIRE_DEFAULT,
+ xx = rpmdbSetIteratorRE(psm->mi, RPMTAG_ARCH, RPMMIRE_STRCMP,
rpmteA(psm->te));
- xx = rpmdbSetIteratorRE(psm->mi, RPMTAG_OS, RPMMIRE_DEFAULT,
+ xx = rpmdbSetIteratorRE(psm->mi, RPMTAG_OS, RPMMIRE_STRCMP,
rpmteO(psm->te));
}
diff --git a/lib/transaction.c b/lib/transaction.c
index a0e147d7e..4fdeab547 100644
--- a/lib/transaction.c
+++ b/lib/transaction.c
@@ -1037,16 +1037,16 @@ rpmMessage(RPMMESS_DEBUG, _("sanity checking %d elements\n"), rpmtsNElements(ts)
if (!(rpmtsFilterFlags(ts) & RPMPROB_FILTER_REPLACEPKG)) {
mi = rpmtsInitIterator(ts, RPMTAG_NAME, rpmteN(p), 0);
- xx = rpmdbSetIteratorRE(mi, RPMTAG_EPOCH, RPMMIRE_DEFAULT,
+ xx = rpmdbSetIteratorRE(mi, RPMTAG_EPOCH, RPMMIRE_STRCMP,
rpmteE(p));
- xx = rpmdbSetIteratorRE(mi, RPMTAG_VERSION, RPMMIRE_DEFAULT,
+ xx = rpmdbSetIteratorRE(mi, RPMTAG_VERSION, RPMMIRE_STRCMP,
rpmteV(p));
- xx = rpmdbSetIteratorRE(mi, RPMTAG_RELEASE, RPMMIRE_DEFAULT,
+ xx = rpmdbSetIteratorRE(mi, RPMTAG_RELEASE, RPMMIRE_STRCMP,
rpmteR(p));
if (tscolor) {
- xx = rpmdbSetIteratorRE(mi, RPMTAG_ARCH, RPMMIRE_DEFAULT,
+ xx = rpmdbSetIteratorRE(mi, RPMTAG_ARCH, RPMMIRE_STRCMP,
rpmteA(p));
- xx = rpmdbSetIteratorRE(mi, RPMTAG_OS, RPMMIRE_DEFAULT,
+ xx = rpmdbSetIteratorRE(mi, RPMTAG_OS, RPMMIRE_STRCMP,
rpmteO(p));
}
diff --git a/rpmdb/rpmdb.c b/rpmdb/rpmdb.c
index 3532be9ee..10dfd27a5 100644
--- a/rpmdb/rpmdb.c
+++ b/rpmdb/rpmdb.c
@@ -1747,12 +1747,13 @@ static /*@only@*/ char * mireDup(rpmTag tag, rpmMireMode *modep,
nb = strlen(pattern) + sizeof("^$");
/* Find no. of bytes needed for pattern. */
- /* periods are escaped, splats become '.*' */
+ /* periods and plusses are escaped, splats become '.*' */
c = '\0';
brackets = 0;
for (s = pattern; *s != '\0'; s++) {
switch (*s) {
case '.':
+ case '+':
case '*':
if (!brackets) nb++;
/*@switchbreak@*/ break;
@@ -1779,6 +1780,7 @@ static /*@only@*/ char * mireDup(rpmTag tag, rpmMireMode *modep,
for (s = pattern; *s != '\0'; s++, t++) {
switch (*s) {
case '.':
+ case '+':
if (!brackets) *t++ = '\\';
/*@switchbreak@*/ break;
case '*':