RPM Community Forums

Mailing List Message of <rpm-devel>

damaged headers are due to FILESTATES RPM_CHAR_TYPE

From: Alexey Tourbin <at@altlinux.ru>
Date: Wed 27 Aug 2008 - 10:26:19 CEST
Message-ID: <20080827082619.GJ6477@altlinux.org>
Damaged headers are due to FILESTATES from older rpmdb.

rpmdb/header.c (regionSwab):
   522      for (; il > 0; il--, pe++) {
   523          struct indexEntry_s ie;
   524          rpmTagType type;
   525
   526          ie.info.tag = (rpmuint32_t) ntohl(pe->tag);
   527          ie.info.type = (rpmuint32_t) ntohl(pe->type);
   528          ie.info.count = (rpmuint32_t) ntohl(pe->count);
   529          ie.info.offset = (rpmint32_t) ntohl(pe->offset);
   530  assert(ie.info.offset >= 0);    /* XXX insurance */
   531
Bails out right here:
   532          if (hdrchkType(ie.info.type))
   533              return 0;
   534          if (hdrchkData(ie.info.count))
   535              return 0;
   536          if (hdrchkData(ie.info.offset))
   537              return 0;
   538          if (hdrchkAlign(ie.info.type, ie.info.offset))
   539              return 0;

Older FILESTATES have type RPM_CHAR_TYPE (= 1), and new value
for RPM_MIN_TYPE is 2, which is RPM_UINT8_TYPE.


  • application/pgp-signature attachment: stored
Received on Wed Aug 27 10:26:20 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.