RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  [EMAIL PROTECTED]
  Module: rpm                              Date:   08-Oct-2007 08:50:02
  Branch: HEAD                             Handle: 2007100807500200

  Modified files:
    rpm                     CHANGES
    rpm/rpmdb               header.c

  Log:
    - headerGetExtension: handle lookup failure cases too.
    - headerGetExtension: include \0 when dup'ing string.

  Summary:
    Revision    Changes     Path
    1.1662      +2  -0      rpm/CHANGES
    1.70        +3  -4      rpm/rpmdb/header.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1661 -r1.1662 CHANGES
  --- rpm/CHANGES       8 Oct 2007 05:00:52 -0000       1.1661
  +++ rpm/CHANGES       8 Oct 2007 06:50:02 -0000       1.1662
  @@ -1,4 +1,6 @@
   4.5 -> 5.0:
  +    - jbj: headerGetExtension: handle lookup failure cases too.
  +    - jbj: headerGetExtension: include \0 when dup'ing string.
       - jbj: start converting rpmdb.c to use headerGetExtension instead.
       - jbj: expose hRET_t through headerGetExtension prototypes.
       - jbj: unbork/simplify hRET_t indirections, too much acid in the 
Kool-Aid.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/header.c
  ============================================================================
  $ cvs diff -u -r1.69 -r1.70 header.c
  --- rpm/rpmdb/header.c        7 Oct 2007 18:58:33 -0000       1.69
  +++ rpm/rpmdb/header.c        8 Oct 2007 06:50:02 -0000       1.70
  @@ -1853,7 +1853,7 @@
       else
        rc = intGetEntry(h, he->tag, he->t, (hPTR_t *)he->p, he->c, 0);
   
  -    if (he->p && !he->freeData)
  +    if (rc && he->p && !he->freeData)
       switch (*he->t) {
       case RPM_NULL_TYPE:
       case RPM_OPENPGP_TYPE:   /* XXX W2DO? */
  @@ -1864,7 +1864,6 @@
        break;
       case RPM_CHAR_TYPE:
       case RPM_INT8_TYPE:
  -assert(0);   /* XXX stop unimplemented oversights. */
        nb = he_c * sizeof(*he_p.i8p);
        break;
       case RPM_INT16_TYPE:
  @@ -1881,13 +1880,13 @@
        break;
       case RPM_I18NSTRING_TYPE:
       case RPM_STRING_TYPE:
  -     nb = strlen(he_p.str);
  +     nb = strlen(he_p.str) + 1;
        break;
       case RPM_STRING_ARRAY_TYPE:
        break;
       }
   
  -    if (p)
  +    if (rc && p)
        p->ptr = ((nb > 0)
                ? memcpy(xmalloc(nb), he_p.ptr, nb) : he_p.ptr);
   
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to