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:   22-Apr-2008 23:24:11
  Branch: HEAD                             Handle: 2008042221241100

  Modified files:
    rpm                     CHANGES
    rpm/rpmdb               header.c

  Log:
    - jbj: header: fix: avoid double free with damaged data (#442761).

  Summary:
    Revision    Changes     Path
    1.2302      +1  -0      rpm/CHANGES
    1.154       +3  -1      rpm/rpmdb/header.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2301 -r1.2302 CHANGES
  --- rpm/CHANGES       15 Apr 2008 13:18:37 -0000      1.2301
  +++ rpm/CHANGES       22 Apr 2008 21:24:11 -0000      1.2302
  @@ -1,5 +1,6 @@
   
   5.1.0 -> 5.2a0:
  +    - jbj: header: fix: avoid double free with damaged data (#442761).
       - jbj: rpmte: revert to individual tags instead of RPMTAG_NVRA.
       - jbj: rpmte: fix: snip ".arch" from "-release", same NEVRA check broke.
       - afb: fix VPATH builds finding rpmversion.h (in build)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/header.c
  ============================================================================
  $ cvs diff -u -r1.153 -r1.154 header.c
  --- rpm/rpmdb/header.c        23 Mar 2008 13:01:38 -0000      1.153
  +++ rpm/rpmdb/header.c        22 Apr 2008 21:24:11 -0000      1.154
  @@ -1255,6 +1255,7 @@
            entryInfo pe = (entryInfo) (ei + 2);
            /[EMAIL PROTECTED]@*/
            unsigned char * dataStart = (unsigned char *) (pe + ntohl(ei[0]));
  +         unsigned char * dataEnd;
            uint32_t rdl;
            uint32_t ril;
   
  @@ -1281,9 +1282,10 @@
            /[EMAIL PROTECTED]@*/
   
            dataStart = (unsigned char *) memcpy(pe + ril, dataStart, rdl);
  +         dataEnd = dataStart + rdl;
            /[EMAIL PROTECTED]@*/
   
  -         rdlen = regionSwab(NULL, ril, 0, pe, dataStart, NULL, 0);
  +         rdlen = regionSwab(NULL, ril, 0, pe, dataStart, dataEnd, 0);
            /* XXX 1 on success. */
            rc = (rdlen == 0) ? 0 : 1;
        } else {
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to