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:   29-Mar-2009 23:44:06
  Branch: HEAD                             Handle: 2009032921440501

  Modified files:
    rpm                     CHANGES
    rpm/rpmdb               pkgio.c
    rpm/rpmio               rpmiob.c rpmku.c

  Log:
    - rpmku: rework rpmiob handling to avoid extra malloc's.
    - rpmiob: fix: add a newref in rpmiobNew.

  Summary:
    Revision    Changes     Path
    1.2886      +2  -0      rpm/CHANGES
    1.97        +2  -4      rpm/rpmdb/pkgio.c
    1.5         +1  -1      rpm/rpmio/rpmiob.c
    2.3         +5  -4      rpm/rpmio/rpmku.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2885 -r1.2886 CHANGES
  --- rpm/CHANGES       29 Mar 2009 18:42:21 -0000      1.2885
  +++ rpm/CHANGES       29 Mar 2009 21:44:05 -0000      1.2886
  @@ -1,5 +1,7 @@
   
   5.2a3 -> 5.2a4:
  +    - jbj: rpmku: rework rpmiob handling to avoid extra malloc's.
  +    - jbj: rpmiob: fix: add a newref in rpmiobNew.
       - jbj: yarn: convert rpmiob to usage mutex with refcounts.
       - rse: add RPM Lua function rpm.hostname()
       - jbj: fix: handle ./../foo paths correctly (#491388).
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/pkgio.c
  ============================================================================
  $ cvs diff -u -r1.96 -r1.97 pkgio.c
  --- rpm/rpmdb/pkgio.c 27 Mar 2009 17:42:00 -0000      1.96
  +++ rpm/rpmdb/pkgio.c 29 Mar 2009 21:44:05 -0000      1.97
  @@ -312,10 +312,8 @@
        /* Save the pubkey in the keyutils keyring. */
        if (krcache) {
            if (iob == NULL) {
  -             iob = xcalloc(1, sizeof(*iob));
  -             iob->b = memcpy(xmalloc(ts->pkpktlen), ts->pkpkt, ts->pkpktlen);
  -             iob->blen = ts->pkpktlen;
  -             iob->allocated = ts->pkpktlen;
  +             iob = rpmiobNew(ts->pkpktlen);
  +             iob->b = memcpy(iob->b, ts->pkpkt, iob->blen);
            }
            (void) rpmkuStorePubkey(sigp, iob);
        }
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmiob.c
  ============================================================================
  $ cvs diff -u -r1.4 -r1.5 rpmiob.c
  --- rpm/rpmio/rpmiob.c        29 Mar 2009 18:42:22 -0000      1.4
  +++ rpm/rpmio/rpmiob.c        29 Mar 2009 21:44:06 -0000      1.5
  @@ -47,7 +47,7 @@
       iob->allocated = len;
       iob->blen = 0;
       iob->b = xcalloc(iob->allocated+1, sizeof(*iob->b));
  -    return iob;
  +    return rpmiobLink(iob);
   }
   
   rpmiob rpmiobEmpty(rpmiob iob)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmku.c
  ============================================================================
  $ cvs diff -u -r2.2 -r2.3 rpmku.c
  --- rpm/rpmio/rpmku.c 1 Oct 2008 15:53:17 -0000       2.2
  +++ rpm/rpmio/rpmku.c 29 Mar 2009 21:44:06 -0000      2.3
  @@ -168,9 +168,8 @@
        key = keyctl_search(keyring, "user", krn, 0);
        xx = keyctl_read(key, NULL, 0);
        if (xx > 0) {
  -         rpmiob iob = xcalloc(1, sizeof(*iob));
  -         iob->allocated = iob->blen = xx;
  -         xx = keyctl_read_alloc(key, (void **)&iob->b);
  +         rpmiob iob = rpmiobNew(xx);
  +         xx = keyctl_read(key, (char *)iob->b, iob->blen);
            if (xx > 0) {
   #ifdef       NOTYET
                pubkeysource = xstrdup(krn);
  @@ -182,8 +181,10 @@
            if (iob != NULL && iobp != NULL) {
                *iobp = iob;
                return RPMRC_OK;
  -         } else
  +         } else {
  +             iob = rpmiobFree(iob);
                return RPMRC_NOTFOUND;
  +         }
        } else
            return RPMRC_NOTFOUND;
       } else
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to