rpm: opendb before rpmverifyscript to avoid null point input If the command is "rpm -V" and the return value of (headerIsEntry(h, RPMTAG_VERIFYSCRIPT) || headerIsEntry(h, RPMTAG_SANITYCHECK)) located in /lib/verify.c is true, it will call rpmpsmStage function(rpmVerifyScript->rpmpsmScriptStage->rpmpsmStage) and occur segment fault because of null point(rpmtsGetRdb(ts) == NULL and rpmtsGetRdb(ts)->db_txn). So we open rpmdb to avoid bad input when find headerIsEntry true. Upstream-Status: Submitted [RPM5 maintainer] Signed-off-by: Zhixiong Chi Index: rpm-5.4.14/lib/verify.c =================================================================== --- rpm-5.4.14.orig/lib/verify.c 2015-07-22 22:09:59.992895355 +0800 +++ rpm-5.4.14/lib/verify.c 2015-08-13 10:20:33.752177906 +0800 @@ -613,6 +613,8 @@ { FD_t fdo = fdDup(STDOUT_FILENO); + rpmtsOpenDB(ts, O_RDONLY); /*Open the DB to avoid null point input in function rpmpsmStage()*/ + rc = rpmfiSetHeader(fi, h); if ((rc = rpmVerifyScript(qva, ts, fi, fdo)) != 0) ec += rc;