From 037538f00f3801d1698a30d107cd6468d6009fde Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Wed, 7 Apr 2010 12:12:51 +0300 Subject: [PATCH] Eliminate the headerCheck() foo from rpmdbAdd/Remove() - for rpmdbRemove() these have been completely unused, and for rpmdbAdd() the higher levels have had more than one chance of verifying the header if checking is enabled in the transaction set --- lib/psm.c | 8 ++------ lib/rpmdb.c | 25 +++---------------------- lib/rpmdb.h | 13 ++----------- lib/rpmts.c | 2 +- 4 files changed, 8 insertions(+), 40 deletions(-) diff --git a/lib/psm.c b/lib/psm.c index 06afe8d..b3fe09d 100644 --- a/lib/psm.c +++ b/lib/psm.c @@ -1078,10 +1078,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkgStage stage) } (void) rpmswEnter(rpmtsOp(ts, RPMTS_OP_DBADD), 0); - if (!(rpmtsVSFlags(ts) & RPMVSF_NOHDRCHK)) - rc = rpmdbAdd(rpmtsGetRdb(ts), 0, h, ts, headerCheck); - else - rc = rpmdbAdd(rpmtsGetRdb(ts), 0, h, NULL, NULL); + rc = rpmdbAdd(rpmtsGetRdb(ts), h); (void) rpmswExit(rpmtsOp(ts, RPMTS_OP_DBADD), 0); if (rc == RPMRC_OK) @@ -1092,8 +1089,7 @@ static rpmRC rpmpsmStage(rpmpsm psm, pkgStage stage) case PSM_RPMDB_REMOVE: if (rpmtsFlags(ts) & RPMTRANS_FLAG_TEST) break; (void) rpmswEnter(rpmtsOp(ts, RPMTS_OP_DBREMOVE), 0); - rc = rpmdbRemove(rpmtsGetRdb(ts), rpmtsGetTid(ts), - rpmteDBInstance(psm->te), NULL, NULL); + rc = rpmdbRemove(rpmtsGetRdb(ts), rpmteDBInstance(psm->te)); (void) rpmswExit(rpmtsOp(ts, RPMTS_OP_DBREMOVE), 0); if (rc == RPMRC_OK) rpmteSetDBInstance(psm->te, 0); diff --git a/lib/rpmdb.c b/lib/rpmdb.c index e01ccba..8b70546 100644 --- a/lib/rpmdb.c +++ b/lib/rpmdb.c @@ -2261,10 +2261,7 @@ static int updatePackages(dbiIndex dbi, unsigned int hdrNum, DBT *hdr) return rc; } -/* XXX psm.c */ -int rpmdbRemove(rpmdb db, int rid, unsigned int hdrNum, - rpmts ts, - rpmRC (*hdrchk) (rpmts ts, const void *uh, size_t uc, char ** msg)) +int rpmdbRemove(rpmdb db, unsigned int hdrNum) { dbiIndex dbi; Header h; @@ -2462,10 +2459,7 @@ static unsigned int nextInstance(dbiIndex dbi) return hdrNum; } -/* XXX install.c */ -int rpmdbAdd(rpmdb db, int iid, Header h, - rpmts ts, - rpmRC (*hdrchk) (rpmts ts, const void *uh, size_t uc, char ** msg)) +int rpmdbAdd(rpmdb db, Header h) { DBT hdr; sigset_t signalMask; @@ -2483,19 +2477,6 @@ int rpmdbAdd(rpmdb db, int iid, Header h, hdr.data = headerUnload(h); hdrOk = (hdr.data != NULL && hdr.size > 0); - /* Check header digest/signature if enabled. */ - if (hdrchk && ts) { - char * msg = NULL; - rpmRC rpmrc = (*hdrchk) (ts, hdr.data, hdr.size, &msg); - int lvl = (rpmrc == RPMRC_FAIL ? RPMLOG_ERR : RPMLOG_DEBUG); - - hdrOk = (rpmrc != RPMRC_FAIL); - - rpmlog(lvl, "%s h#%8u %s", hdrOk ? " +++" : _("rpmdbAdd: skipping"), - hdrNum, (msg ? msg : "\n")); - msg = _free(msg); - } - if (!hdrOk) { ret = -1; goto exit; @@ -2886,7 +2867,7 @@ int rpmdbRebuild(const char * prefix, rpmts ts, /* Deleted entries are eliminated in legacy headers by copy. */ { Header nh = (headerIsEntry(h, RPMTAG_HEADERIMAGE) ? headerCopy(h) : NULL); - rc = rpmdbAdd(newdb, -1, (nh ? nh : h), ts, hdrchk); + rc = rpmdbAdd(newdb, (nh ? nh : h)); nh = headerFree(nh); } diff --git a/lib/rpmdb.h b/lib/rpmdb.h index b8d1214..595a636 100644 --- a/lib/rpmdb.h +++ b/lib/rpmdb.h @@ -236,27 +236,18 @@ rpmdbMatchIterator rpmdbFreeIterator(rpmdbMatchIterator mi); /** \ingroup rpmdb * Add package header to rpm database and indices. * @param db rpm database - * @param iid (unused) * @param h header - * @param ts (unused) transaction set (or NULL) - * @param (*hdrchk) (unused) headerCheck() vector (or NULL) * @return 0 on success */ -int rpmdbAdd(rpmdb db, int iid, Header h, rpmts ts, - rpmRC (*hdrchk) (rpmts ts, const void *uh, size_t uc, char ** msg)); +int rpmdbAdd(rpmdb db, Header h); /** \ingroup rpmdb * Remove package header from rpm database and indices. * @param db rpm database - * @param rid (unused) * @param hdrNum package instance number in database - * @param ts (unused) transaction set (or NULL) - * @param (*hdrchk) (unused) headerCheck() vector (or NULL) * @return 0 on success */ -int rpmdbRemove(rpmdb db, int rid, unsigned int hdrNum, - rpmts ts, - rpmRC (*hdrchk) (rpmts ts, const void *uh, size_t uc, char ** msg)); +int rpmdbRemove(rpmdb db, unsigned int hdrNum); /** \ingroup rpmdb * Rebuild database indices from package headers. diff --git a/lib/rpmts.c b/lib/rpmts.c index 4e08353..fa36459 100644 --- a/lib/rpmts.c +++ b/lib/rpmts.c @@ -430,7 +430,7 @@ rpmRC rpmtsImportPubkey(const rpmts ts, const unsigned char * pkt, size_t pktlen /* Add header to database. */ if (rpmtsOpenDB(ts, (O_RDWR|O_CREAT))) goto exit; - if (rpmdbAdd(rpmtsGetRdb(ts), 0, h, NULL, NULL) != 0) + if (rpmdbAdd(rpmtsGetRdb(ts), h) != 0) goto exit; rc = RPMRC_OK; -- 2.7.4