[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rpm-cvs
Subject:    [CVS] RPM: rpm/ CHANGES rpm/rpmdb/ hdrfmt.c
From:       "Jeff Johnson" <jbj () rpm5 ! org>
Date:       2008-06-29 22:19:00
Message-ID: 20080629221900.ACF78348490 () rpm5 ! org
[Download RAW message or body]

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

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  jbj@rpm5.org
  Module: rpm                              Date:   30-Jun-2008 00:19:00
  Branch: HEAD                             Handle: 2008062922190000

  Modified files:
    rpm                     CHANGES
    rpm/rpmdb               hdrfmt.c

  Log:
    - fix: specspo lookup broke because of 2nd tagName call side-effect.

  Summary:
    Revision    Changes     Path
    1.2444      +1  -0      rpm/CHANGES
    1.112       +7  -1      rpm/rpmdb/hdrfmt.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2443 -r1.2444 CHANGES
  --- rpm/CHANGES	28 Jun 2008 22:15:53 -0000	1.2443
  +++ rpm/CHANGES	29 Jun 2008 22:19:00 -0000	1.2444
  @@ -1,5 +1,6 @@
   
   5.1.0 -> 5.2a0:
  +    - jbj: fix: specspo lookup broke because of 2nd tagName call side-effect.
       - jbj: rpmwget: parse all wget options.
       - jbj: rpmio: stub in rpmwget options using popt.
       - jbj: rpmio: stub in rpmcurl options using popt.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/hdrfmt.c
  ============================================================================
  $ cvs diff -u -r1.111 -r1.112 hdrfmt.c
  --- rpm/rpmdb/hdrfmt.c	20 Jun 2008 22:26:22 -0000	1.111
  +++ rpm/rpmdb/hdrfmt.c	29 Jun 2008 22:19:00 -0000	1.112
  @@ -1749,12 +1749,18 @@
   	const char * msgid;
   
   	{   HE_t nhe = memset(alloca(sizeof(*nhe)), 0, sizeof(*nhe));
  -	    const char * tn = tagName(he->tag);
  +	    const char * tn;
   	    char * mk;
   	    size_t nb = sizeof("()");
   	    int xx;
   	    nhe->tag = RPMTAG_NAME;
   	    xx = headerGet(h, nhe, 0);
  +	    /*
  +	     * XXX Ick, tagName() is called by headerGet(), and the tagName()
  +	     * buffer is valid only until next tagName() call.
  +	     * For now, do the tagName() lookup after headerGet().
  +	     */
  +	    tn = tagName(he->tag);
   	    if (tn)	nb += strlen(tn);
   	    if (nhe->p.str)	nb += strlen(nhe->p.str);
   	    mk = alloca(nb);
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic