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: 25-May-2009 00:48:45 Branch: HEAD Handle: 2009052422484400 Modified files: rpm CHANGES rpm/rpmdb header.c Log: - jbj: header: fix: re-initialize headers from pool more carefully. Summary: Revision Changes Path 1.2996 +1 -0 rpm/CHANGES 1.190 +15 -2 rpm/rpmdb/header.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.2995 -r1.2996 CHANGES --- rpm/CHANGES 24 May 2009 22:27:46 -0000 1.2995 +++ rpm/CHANGES 24 May 2009 22:48:44 -0000 1.2996 @@ -1,5 +1,6 @@ 5.2b1 -> 5.3a1 + - jbj: header: fix: re-initialize headers from pool more carefully. - jbj: rpmps: fix: remove the hack-o-round, handle rpmps like other pools. - jbj: yarn: convert dbiIndex to usage mutex with refcounts. - jbj: yarn: convert Package to usage mutex with refcounts. @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/header.c ============================================================================ $ cvs diff -u -r1.189 -r1.190 header.c --- rpm/rpmdb/header.c 23 May 2009 15:48:44 -0000 1.189 +++ rpm/rpmdb/header.c 24 May 2009 22:48:44 -0000 1.190 @@ -173,7 +173,12 @@ h->baseurl = NULL; h->digest = NULL; h->rpmdb = NULL; + memset(&h->sb, 0, sizeof(h->sb)); h->instance = 0; + h->startoff = 0; + h->endoff = 0; + memset(&h->h_loadops, 0, sizeof(h->h_loadops)); + memset(&h->h_getops, 0, sizeof(h->h_getops)); h->indexAlloced = INDEX_MALLOC_SIZE; h->indexUsed = 0; h->flags |= HEADERFLAG_SORTED; @@ -963,6 +968,7 @@ dataEnd = dataStart + dl; h = headerGetPool(_headerPool); + memset(&h->h_loadops, 0, sizeof(h->h_loadops)); if ((sw = headerGetStats(h, 18)) != NULL) /* RPMTS_OP_HDRLOAD */ (void) rpmswEnter(sw, 0); { unsigned char * hmagic = header_magic; @@ -972,12 +978,19 @@ h->blob = uh; h->bloblen = pvlen; /*...@=assignexpose =kepttr...@*/ + h->origin = NULL; + h->baseurl = NULL; + h->digest = NULL; + h->rpmdb = NULL; + memset(&h->sb, 0, sizeof(h->sb)); + h->instance = 0; + h->startoff = 0; + h->endoff = (rpmuint32_t) pvlen; + memset(&h->h_getops, 0, sizeof(h->h_getops)); h->indexAlloced = il + 1; h->indexUsed = il; h->index = xcalloc(h->indexAlloced, sizeof(*h->index)); h->flags |= HEADERFLAG_SORTED; - h->startoff = 0; - h->endoff = (rpmuint32_t) pvlen; h = headerLink(h); assert(h != NULL); @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org