[CVS] RPM: rpm-5_4: rpm/rpmdb/ header_internal.c

2016-04-03 Thread Jeff Johnson
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  

  Server: rpm5.org Name:   Jeff Johnson
  Root:   /v/rpm/cvs   Email:  j...@rpm5.org
  Module: rpm  Date:   04-Apr-2016 06:28:56
  Branch: rpm-5_4  Handle: 2016040404285600

  Modified files:   (Branch: rpm-5_4)
rpm/rpmdb   header_internal.c

  Log:
- header: remove the damaged tags assert failure.

  Summary:
RevisionChanges Path
1.20.2.2+8  -2  rpm/rpmdb/header_internal.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/header_internal.c
  
  $ cvs diff -u -r1.20.2.1 -r1.20.2.2 header_internal.c
  --- rpm/rpmdb/header_internal.c   16 Apr 2012 23:43:34 -  1.20.2.1
  +++ rpm/rpmdb/header_internal.c   4 Apr 2016 04:28:56 -   1.20.2.2
  @@ -44,15 +44,21 @@
   for (i = 0; i < il; i++) {
info->tag = (rpmTag) ntohl(pe[i].tag);
info->type = (rpmTagType) ntohl(pe[i].type);
  + info->offset = (rpmint32_t) ntohl(pe[i].offset);
  + info->count = (rpmuint32_t) ntohl(pe[i].count);
  +#if 0
  +fprintf(stderr, "\ttag %d type %d offset 0x%x count %d\n", info->tag, 
info->type, info->offset, info->count);
  +#endif
  +
/* XXX Convert RPMTAG_FILESTATE to RPM_UINT8_TYPE. */
if (info->tag == 1029 && info->type == 1) {
info->type = RPM_UINT8_TYPE;
}
  - info->offset = (rpmint32_t) ntohl(pe[i].offset);
  +#ifdef   DYING
   assert(negate || info->offset >= 0); /* XXX insurance */
  +#endif
if (negate)
info->offset = -info->offset;
  - info->count = (rpmuint32_t) ntohl(pe[i].count);
   
if (hdrchkType(info->type))
return (int)i;
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmdb/ header_internal.c

2016-04-11 Thread Jeff Johnson
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  

  Server: rpm5.org Name:   Jeff Johnson
  Root:   /v/rpm/cvs   Email:  j...@rpm5.org
  Module: rpm  Date:   12-Apr-2016 00:02:11
  Branch: rpm-5_4  Handle: 2016041122021100

  Modified files:   (Branch: rpm-5_4)
rpm/rpmdb   header_internal.c

  Log:
- pubkeys: detect RPMTAG_PUBKEY type failures as early as possible.

  Summary:
RevisionChanges Path
1.20.2.5+7  -1  rpm/rpmdb/header_internal.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/header_internal.c
  
  $ cvs diff -u -r1.20.2.4 -r1.20.2.5 header_internal.c
  --- rpm/rpmdb/header_internal.c   11 Apr 2016 09:12:33 -  1.20.2.4
  +++ rpm/rpmdb/header_internal.c   11 Apr 2016 22:02:11 -  1.20.2.5
  @@ -46,8 +46,14 @@
info->count = (rpmuint32_t) ntohl(pe[i].count);
   
/* XXX Convert RPMTAG_FILESTATE to RPM_UINT8_TYPE. */
  - if (info->tag == 1029 && info->type == 1) {
  + if (info->tag == 1029 && info->type == 1)
info->type = RPM_UINT8_TYPE;
  +
  + /* XXX Ensure that pubkey type is sane, fail early if not.. */
  + if (info->tag == RPMTAG_PUBKEYS
  +  && info->type != RPM_STRING_ARRAY_TYPE)
  + {
  + return (int)i;
}
   
   #ifdef   NOTYET  /* XXX more todo here */
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmdb/ header_internal.c

2016-04-15 Thread Jeff Johnson
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  

  Server: rpm5.org Name:   Jeff Johnson
  Root:   /v/rpm/cvs   Email:  j...@rpm5.org
  Module: rpm  Date:   15-Apr-2016 20:26:17
  Branch: rpm-5_4  Handle: 2016041518261700

  Modified files:   (Branch: rpm-5_4)
rpm/rpmdb   header_internal.c

  Log:
- header: verify signature tag type failures as early as possible.

  Summary:
RevisionChanges Path
1.20.2.6+16 -13 rpm/rpmdb/header_internal.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/header_internal.c
  
  $ cvs diff -u -r1.20.2.5 -r1.20.2.6 header_internal.c
  --- rpm/rpmdb/header_internal.c   11 Apr 2016 22:02:11 -  1.20.2.5
  +++ rpm/rpmdb/header_internal.c   15 Apr 2016 18:26:17 -  1.20.2.6
  @@ -49,21 +49,24 @@
if (info->tag == 1029 && info->type == 1)
info->type = RPM_UINT8_TYPE;
   
  - /* XXX Ensure that pubkey type is sane, fail early if not.. */
  - if (info->tag == RPMTAG_PUBKEYS
  -  && info->type != RPM_STRING_ARRAY_TYPE)
  - {
  - return (int)i;
  + /* XXX Ensure that sigh tags have usual types, fail early if not. */
  + switch (info->tag) {
  + case RPMSIGTAG_SHA1:
  + if (info->type != RPM_STRING_TYPE) return (int)i;
  + break;
  + case RPMTAG_PUBKEYS:
  + if (info->type != RPM_STRING_ARRAY_TYPE) return (int)i;
  + break;
  + case RPMSIGTAG_DSA:
  + case RPMSIGTAG_RSA:
  + case RPMSIGTAG_ECDSA:
  + case RPMSIGTAG_PADDING:
  + if (info->type != RPM_BIN_TYPE) return (int)i;
  + break;
  + default:
  + break;
}
   
  -#ifdef   NOTYET  /* XXX more todo here */
  -#if !defined(SUPPORT_I18NSTRING_TYPE)
  - /* XXX Re-map RPM_I18NSTRING_TYPE -> RPM_STRING_TYPE */
  - if (info->type == RPM_I18NSTRING_TYPE)
  - info->type = RPM_STRING_TYPE;
  -#endif
  -#endif
  -
if (!(negate || info->offset >= 0))
return (int)i;
if (negate)
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmdb/ header_internal.c

2016-04-19 Thread Jeff Johnson
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  

  Server: rpm5.org Name:   Jeff Johnson
  Root:   /v/rpm/cvs   Email:  j...@rpm5.org
  Module: rpm  Date:   19-Apr-2016 15:13:06
  Branch: rpm-5_4  Handle: 2016041913130600

  Modified files:   (Branch: rpm-5_4)
rpm/rpmdb   header_internal.c

  Log:
- avoid negated zero ambiguity in checks.

  Summary:
RevisionChanges Path
1.20.2.7+1  -1  rpm/rpmdb/header_internal.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/header_internal.c
  
  $ cvs diff -u -r1.20.2.6 -r1.20.2.7 header_internal.c
  --- rpm/rpmdb/header_internal.c   15 Apr 2016 18:26:17 -  1.20.2.6
  +++ rpm/rpmdb/header_internal.c   19 Apr 2016 13:13:06 -  1.20.2.7
  @@ -67,7 +67,7 @@
break;
}
   
  - if (!(negate || info->offset >= 0))
  + if (!((negate && info->offset < 0) || info->offset >= 0))
return (int)i;
if (negate)
info->offset = -info->offset;
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm-5_4: rpm/rpmdb/ header_internal.c package.c

2016-04-11 Thread Jeff Johnson
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  

  Server: rpm5.org Name:   Jeff Johnson
  Root:   /v/rpm/cvs   Email:  j...@rpm5.org
  Module: rpm  Date:   11-Apr-2016 11:12:34
  Branch: rpm-5_4  Handle: 2016041109123300

  Modified files:   (Branch: rpm-5_4)
rpm/rpmdb   header_internal.c package.c

  Log:
- fix: avoid argv underruns;

  Summary:
RevisionChanges Path
1.20.2.4+1  -5  rpm/rpmdb/header_internal.c
1.2.2.13+1  -1  rpm/rpmdb/package.c
  

  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/header_internal.c
  
  $ cvs diff -u -r1.20.2.3 -r1.20.2.4 header_internal.c
  --- rpm/rpmdb/header_internal.c   10 Apr 2016 22:03:54 -  1.20.2.3
  +++ rpm/rpmdb/header_internal.c   11 Apr 2016 09:12:33 -  1.20.2.4
  @@ -1,4 +1,3 @@
  -/*@-sizeoftype@*/
   /** \ingroup header
* \file rpmdb/header_internal.c
*/
  @@ -13,7 +12,6 @@
   /**
* Alignment needs (and sizeof scalars types) for internal rpm data types.
*/
  -/*@observer@*/ /*@unchecked@*/
   int rpm_typeAlign[16] =  {
   1,   /*!< RPM_NULL_TYPE */
   1,   /*!< RPM_CHAR_TYPE */
  @@ -35,9 +33,7 @@
   
   int headerVerifyInfo(rpmuint32_t il, rpmuint32_t dl, const void * pev, void 
* iv, int negate)
   {
  -/*@-castexpose@*/
   entryInfo pe = (entryInfo) pev;
  -/*@=castexpose@*/
   entryInfo info = (entryInfo) iv;
   rpmuint32_t i;
   rpmTag ptag = 0;
  @@ -68,6 +64,7 @@
info->offset = -info->offset;
   
if (i > 0 && ptag > info->tag) {
  + /* Heuristic to determine whether this or previous tag was fubar. */
if (ptag > RPMTAG_FIRSTFREE_TAG) {
i--;
info->tag = (rpmTag) ntohl(pe[i].tag);
  @@ -108,4 +105,3 @@
   }
   return -1;
   }
  -/*@=sizeoftype@*/
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/package.c
  
  $ cvs diff -u -r1.2.2.12 -r1.2.2.13 package.c
  --- rpm/rpmdb/package.c   10 Apr 2016 22:03:54 -  1.2.2.12
  +++ rpm/rpmdb/package.c   11 Apr 2016 09:12:33 -  1.2.2.13
  @@ -243,7 +243,7 @@
   default:
break;
   case RPM_STRING_ARRAY_TYPE:
  - ix = he->c - 1; /* XXX FIXME: assumes last pubkey */
  + ix = (he->c > 1 ? he->c - 1 : 0); /* XXX FIXME: assumes last pubkey */
dig->pub = _free(dig->pub);
dig->publen = 0;
{   rpmiob iob = rpmiobNew(0);
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org