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:24:23
  Branch: rpm-5_4                          Handle: 2016040404242200

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

  Log:
    - rewrite last usage of pgpPritPkts() in main rpm code.

  Summary:
    Revision    Changes     Path
    1.68.2.15   +23 -1      rpm/rpmdb/signature.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/signature.c
  ============================================================================
  $ cvs diff -u -r1.68.2.14 -r1.68.2.15 signature.c
  --- rpm/rpmdb/signature.c     2 Apr 2016 23:01:12 -0000       1.68.2.14
  +++ rpm/rpmdb/signature.c     4 Apr 2016 04:24:22 -0000       1.68.2.15
  @@ -257,9 +257,31 @@
   
       /* Parse the signature, change signature tag as appropriate. */
       dig = pgpDigNew(RPMVSF_DEFAULT, (pgpPubkeyAlgo)0);
  +    sigp = pgpGetSignature(dig);
   
  +#ifdef       DYING
       (void) pgpPrtPkts(*pktp, *pktlenp, dig, 0);
  -    sigp = pgpGetSignature(dig);
  +#else
  +    {        void * sig = *pktp;
  +     size_t siglen = *pktlenp;
  +     size_t pleft = siglen;
  +     pgpPkt pp = (pgpPkt) alloca(sizeof(*pp));
  +
  +     if (pgpPktLen((const rpmuint8_t *)sig, pleft, pp) < 0) {
  +         *pktp = _free(*pktp);
  +         rpmlog(RPMLOG_ERR, _("malformed signature packet\n"));
  +         return 1;
  +     }
  +     if (rpmhkpLoadSignature(NULL, dig, pp) < 0
  +      || (sigp->version != 3 && sigp->version != 4))
  +     {
  +         *pktp = _free(*pktp);
  +         rpmlog(RPMLOG_ERR, _("cannot load V%u signature\n"),
  +             (unsigned) sigp->version);
  +         return 1;
  +     }
  +    }
  +#endif
   
       /* Identify the type of signature being returned. */
       /* XXX FIXME: RPMSIGTAG{DSA,RSA,ECDSA} are interchangeable. */
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to