Michael Schröder
0bccf0ecf6
- fix segfault in rpmtsNextFiles OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=683
41 lines
1.3 KiB
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);
|