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:   13-Nov-2007 02:07:09
  Branch: HEAD                             Handle: 2007111301070801

  Modified files:
    rpm                     CHANGES
    rpm/lib                 rpmchecksig.c
    rpm/rpmdb               librpmdb.vers

  Log:
    - functional -Kvv *.xar header SHA1 and header+payload MD5 verify.

  Summary:
    Revision    Changes     Path
    1.1817      +1  -0      rpm/CHANGES
    1.174       +18 -0      rpm/lib/rpmchecksig.c
    1.27        +2  -0      rpm/rpmdb/librpmdb.vers
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1816 -r1.1817 CHANGES
  --- rpm/CHANGES       13 Nov 2007 00:34:11 -0000      1.1816
  +++ rpm/CHANGES       13 Nov 2007 01:07:08 -0000      1.1817
  @@ -1,4 +1,5 @@
   5.0a1 -> 5.0a2:
  +    - jbj: functional -Kvv *.xar header SHA1 and header+payload MD5 verify.
       - jbj: eliminate all but 1 of the memory leaks with -Kvv *.xar.
       - jbj: add he->signature tagTypeValidate disabler, sigtags no workie.
       - jbj: add (tenative) patch to handle cached chroot paths.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/rpmchecksig.c
  ============================================================================
  $ cvs diff -u -r1.173 -r1.174 rpmchecksig.c
  --- rpm/lib/rpmchecksig.c     13 Nov 2007 00:34:11 -0000      1.173
  +++ rpm/lib/rpmchecksig.c     13 Nov 2007 01:07:08 -0000      1.174
  @@ -15,7 +15,13 @@
   #include "rpmdb.h"
   #include "rpmgi.h"
   
  +#ifdef WITH_XAR
  +#include "xar.h"
  +#endif
  +#define      _RPMWF_INTERNAL
  +#include <rpmwf.h>
   #include <pkgio.h>
  +
   #include "signature.h"
   #include "debug.h"
   
  @@ -779,6 +785,7 @@
        /[EMAIL PROTECTED] fileSystem, internalState @*/
        /[EMAIL PROTECTED] fd, *dig, fileSystem, internalState @*/
   {
  +rpmwf wf = fdGetWF(fd);
       HGE_t hge = headerGetExtension;
       HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
       unsigned char buf[4*BUFSIZ];
  @@ -828,6 +835,7 @@
        h = headerFree(h);
       }
   
  +if (wf == NULL) {
       /* Read the payload from the package. */
       while ((count = Fread(buf, sizeof(buf[0]), sizeof(buf), fd)) > 0)
        dig->nbytes += count;
  @@ -835,6 +843,7 @@
        rpmlog(RPMLOG_ERR, _("%s: Fread failed: %s\n"), fn, Fstrerror(fd));
        goto exit;
       }
  +}
   
       /* XXX Steal the digest-in-progress from the file handle. */
       for (i = fd->ndigests - 1; i >= 0; i--) {
  @@ -862,6 +871,15 @@
        }
       }
   
  +if (wf != NULL) {
  +    if (dig->md5ctx)
  +     (void) rpmDigestUpdate(dig->md5ctx, wf->h, wf->nh);
  +    if ((rc = rpmwfNextXAR(wf)) != RPMRC_OK) return rc;
  +    if ((rc = rpmwfPullXAR(wf, "Payload")) != RPMRC_OK) return rc;
  +    if (dig->md5ctx)
  +     (void) rpmDigestUpdate(dig->md5ctx, wf->p, wf->np);
  +}
  +
       rc = 0;
   
   exit:
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/librpmdb.vers
  ============================================================================
  $ cvs diff -u -r1.26 -r1.27 librpmdb.vers
  --- rpm/rpmdb/librpmdb.vers   11 Nov 2007 23:59:20 -0000      1.26
  +++ rpm/rpmdb/librpmdb.vers   13 Nov 2007 01:07:09 -0000      1.27
  @@ -104,6 +104,8 @@
       wrRPM;
       wrXAR;
       rpmwfFree;
  +    rpmwfNextXAR;
  +    rpmwfPullXAR;
       rpmVerifySignature;
       sqlitevec;
       tagTypeValidate;
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to