summaryrefslogtreecommitdiff
path: root/lib/rpmtriggers.c
diff options
context:
space:
mode:
authorFlorian Festi <ffesti@redhat.com>2021-08-20 15:14:16 +0200
committerPanu Matilainen <pmatilai@redhat.com>2021-08-25 13:29:44 +0300
commitfd57fc716231c8296d340fdb4c0f6eac176f7f7c (patch)
treea0bd851e8e78a7df9917c35778835b47955b0aa4 /lib/rpmtriggers.c
parentddb3977a12515a919a8005b4df200398e462f6f5 (diff)
downloadrpm-fd57fc716231c8296d340fdb4c0f6eac176f7f7c.tar.gz
Don't segfault on missing priority tag
Resolves: #1636 Related: #1638
Diffstat (limited to 'lib/rpmtriggers.c')
-rw-r--r--lib/rpmtriggers.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/rpmtriggers.c b/lib/rpmtriggers.c
index fc809a65e..d541974e8 100644
--- a/lib/rpmtriggers.c
+++ b/lib/rpmtriggers.c
@@ -517,7 +517,8 @@ rpmRC runFileTriggers(rpmts ts, rpmte te, rpmsenseFlags sense,
if (matchFunc(ts, te, pfx, sense)) {
for (i = 0; i < rpmdbIndexIteratorNumPkgs(ii); i++) {
struct rpmtd_s priorities;
- unsigned int priority;
+ unsigned int priority = 0;
+ unsigned int *priority_ptr;
unsigned int offset = rpmdbIndexIteratorPkgOffset(ii, i);
unsigned int tix = rpmdbIndexIteratorTagNum(ii, i);
@@ -535,7 +536,9 @@ rpmRC runFileTriggers(rpmts ts, rpmte te, rpmsenseFlags sense,
trigH = rpmdbGetHeaderAt(rpmtsGetRdb(ts), offset);
headerGet(trigH, priorityTag, &priorities, HEADERGET_MINMEM);
rpmtdSetIndex(&priorities, tix);
- priority = *rpmtdGetUint32(&priorities);
+ priority_ptr = rpmtdGetUint32(&priorities);
+ if (priority_ptr)
+ priority = *priority_ptr;
headerFree(trigH);
/* Store file trigger in array */