diff options
author | Florian Festi <ffesti@redhat.com> | 2021-08-20 15:14:16 +0200 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2021-08-25 13:29:44 +0300 |
commit | fd57fc716231c8296d340fdb4c0f6eac176f7f7c (patch) | |
tree | a0bd851e8e78a7df9917c35778835b47955b0aa4 /lib/rpmtriggers.c | |
parent | ddb3977a12515a919a8005b4df200398e462f6f5 (diff) | |
download | rpm-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.c | 7 |
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 */ |