From ae5667cf06d882e2760b924585a8900dcdfcfe19 Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Thu, 29 May 2008 16:26:21 +0300 Subject: [PATCH] Lose unused fdigests array from rpmfi struct - only used in rpmfiNew() where it's converted to binary from the header hex presentation and free'd immediately, a local variable will do just as well - some useless references in fsm and psm, kill'em too --- lib/fsm.c | 9 +++------ lib/fsm.h | 1 - lib/psm.c | 3 --- lib/rpmfi.c | 11 +++++------ lib/rpmfi_internal.h | 1 - 5 files changed, 8 insertions(+), 17 deletions(-) diff --git a/lib/fsm.c b/lib/fsm.c index f5fd97a..c60f58f 100644 --- a/lib/fsm.c +++ b/lib/fsm.c @@ -721,10 +721,8 @@ int fsmMapAttrs(FSM_t fsm) */ if (ts != NULL && !(rpmtsFlags(ts) & RPMTRANS_FLAG_NOMD5)) { size_t diglen = rpmDigestLength(fsm->digestalgo); - fsm->fdigest = (fi->fdigests ? fi->fdigests[i] : NULL); fsm->digest = (char *)(fi->digests ? (fi->digests + (diglen * i)) : NULL); } else { - fsm->fdigest = NULL; fsm->digest = NULL; } } @@ -748,7 +746,7 @@ static int expandRegular(FSM_t fsm) if (rc) goto exit; - if (st->st_size > 0 && (fsm->fdigest != NULL || fsm->digest != NULL)) + if (st->st_size > 0 && fsm->digest != NULL) fdInitDigest(fsm->wfd, fsm->digestalgo, 0); while (left) { @@ -769,7 +767,7 @@ static int expandRegular(FSM_t fsm) (void) fsmNext(fsm, FSM_NOTIFY); } - if (st->st_size > 0 && (fsm->fdigest || fsm->digest)) { + if (st->st_size > 0 && fsm->digest) { void * digest = NULL; int asAscii = (fsm->digest == NULL ? 1 : 0); @@ -786,8 +784,7 @@ static int expandRegular(FSM_t fsm) if (memcmp(digest, fsm->digest, diglen)) rc = CPIOERR_MD5SUM_MISMATCH; } else { - if (strcmp(digest, fsm->fdigest)) - rc = CPIOERR_MD5SUM_MISMATCH; + rc = CPIOERR_MD5SUM_MISMATCH; } digest = _free(digest); } diff --git a/lib/fsm.h b/lib/fsm.h index 27dcd5c..596fbe7 100644 --- a/lib/fsm.h +++ b/lib/fsm.h @@ -152,7 +152,6 @@ struct fsm_s { cpioMapFlags mapFlags; /*!< Bit(s) to control mapping. */ const char * dirName; /*!< File directory name. */ const char * baseName; /*!< File base name. */ - const char * fdigest; /*!< Hex checksum (NULL disables). */ const char * digest; /*!< Binary checksum (NULL disables). */ const char * fcontext; /*!< File security context (NULL disables). */ pgpHashAlgo digestalgo; /*!< File checksum algorithm */ diff --git a/lib/psm.c b/lib/psm.c index 24703ca..05b3c3d 100644 --- a/lib/psm.c +++ b/lib/psm.c @@ -303,9 +303,6 @@ rpmRC rpmInstallSourcePackage(rpmts ts, FD_t fd, *cookie = xstrdup(*cookie); } - /* XXX FIXME: can't do endian neutral MD5 verification yet. */ -fi->fdigests = hfd(fi->fdigests, RPM_FORCEFREE_TYPE); - /* XXX FIXME: don't do per-file mapping, force global flags. */ fi->fmapflags = _free(fi->fmapflags); fi->mapflags = CPIO_MAP_PATH | CPIO_MAP_MODE | CPIO_MAP_UID | CPIO_MAP_GID; diff --git a/lib/rpmfi.c b/lib/rpmfi.c index 4401741..6e8110b 100644 --- a/lib/rpmfi.c +++ b/lib/rpmfi.c @@ -1105,7 +1105,6 @@ fprintf(stderr, "*** fi %p\t%s[%d]\n", fi, fi->Type, fi->fc); fi->flinks = hfd(fi->flinks, RPM_FORCEFREE_TYPE); fi->flangs = hfd(fi->flangs, RPM_FORCEFREE_TYPE); - fi->fdigests = hfd(fi->fdigests, RPM_FORCEFREE_TYPE); fi->digests = _free(fi->digests); fi->cdict = hfd(fi->cdict, RPM_FORCEFREE_TYPE); @@ -1179,6 +1178,7 @@ rpmfi rpmfiNew(const rpmts ts, Header h, rpmTag tagN, int scareMem) uint32_t * uip; int dnlmax, bnlmax; unsigned char * t; + const char **fdigests; int len; int xx; int i; @@ -1268,11 +1268,10 @@ if (fi->actions == NULL) /* digest algorithm hardwired to MD5 for now */ fi->digestalgo = PGPHASHALGO_MD5; - fi->fdigests = NULL; - xx = hge(h, RPMTAG_FILEMD5S, NULL, (rpm_data_t *) &fi->fdigests, NULL); + xx = hge(h, RPMTAG_FILEMD5S, NULL, (rpm_data_t *) &fdigests, NULL); fi->digests = NULL; - if (fi->fdigests) { + if (fdigests) { size_t diglen = rpmDigestLength(fi->digestalgo); t = xmalloc(fi->fc * diglen); fi->digests = t; @@ -1280,7 +1279,7 @@ if (fi->actions == NULL) const char * fdigest; int j; - fdigest = fi->fdigests[i]; + fdigest = fdigests[i]; if (!(fdigest && *fdigest != '\0')) { memset(t, 0, diglen); t += diglen; @@ -1289,7 +1288,7 @@ if (fi->actions == NULL) for (j = 0; j < diglen; j++, t++, fdigest += 2) *t = (rnibble(fdigest[0]) << 4) | rnibble(fdigest[1]); } - fi->fdigests = hfd(fi->fdigests, RPM_FORCEFREE_TYPE); + fdigests = hfd(fdigests, RPM_FORCEFREE_TYPE); } /* XXX TR_REMOVED doesn;t need fmtimes, frdevs, finodes, or fcontexts */ diff --git a/lib/rpmfi_internal.h b/lib/rpmfi_internal.h index b70aa0f..647f973 100644 --- a/lib/rpmfi_internal.h +++ b/lib/rpmfi_internal.h @@ -35,7 +35,6 @@ struct rpmfi_s { /*?null?*/ const char ** dnl; /*!< Directory name(s) (from header) */ - const char ** fdigests; /*!< File checksum(s) (from header) */ const char ** flinks; /*!< File link(s) (from header) */ const char ** flangs; /*!< File lang(s) (from header) */ -- 2.7.4