rpm/nextfiles.diff

41 lines
1.3 KiB
Diff

--- lib/rpmtriggers.c.orig 2024-12-19 14:05:56.403437646 +0000
+++ lib/rpmtriggers.c 2024-12-19 14:11:56.646774439 +0000
@@ -239,31 +239,33 @@ typedef struct matchFilesIter_s {
static rpmfiles rpmtsNextFiles(matchFilesIter mfi)
{
Header h;
- rpmte *te;
rpmfiles files = NULL;
+ const char *pkgname = NULL;
rpmstrPool pool = mfi->ts->members->pool;
int ix;
- unsigned int offset;
ix = rpmdbGetIteratorIndex(mfi->pi);
if (ix < rpmdbGetIteratorCount(mfi->pi)) {
- offset = rpmdbGetIteratorOffsetFor(mfi->pi, ix);
+ unsigned int offset = rpmdbGetIteratorOffsetFor(mfi->pi, ix);
+ rpmte *te;
if (packageHashGetEntry(mfi->ts->members->removedPackages, offset,
&te, NULL, NULL)) {
/* Files are available in memory */
files = rpmteFiles(te[0]);
+ pkgname = rpmteN(te[0]);
}
if (packageHashGetEntry(mfi->ts->members->installedPackages, offset,
&te, NULL, NULL)) {
/* Files are available in memory */
files = rpmteFiles(te[0]);
+ pkgname = rpmteN(te[0]);
}
}
if (files) {
rpmdbSetIteratorIndex(mfi->pi, ix + 1);
- mfi->pkgname = rpmteN(te[0]);
+ mfi->pkgname = pkgname;
} else {
/* Files are not available in memory. Read them from rpmdb */
h = rpmdbNextIterator(mfi->pi);