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: 28-Jun-2013 18:57:10 Branch: rpm-5_4 Handle: 2013062816571000 Modified files: (Branch: rpm-5_4) rpm/rpmdb header.c Log: - coverity #1035890 Summary: Revision Changes Path 1.198.2.8 +9 -2 rpm/rpmdb/header.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/rpmdb/header.c ============================================================================ $ cvs diff -u -r1.198.2.7 -r1.198.2.8 header.c --- rpm/rpmdb/header.c 4 Jun 2012 15:10:18 -0000 1.198.2.7 +++ rpm/rpmdb/header.c 28 Jun 2013 16:57:10 -0000 1.198.2.8 @@ -1330,11 +1330,11 @@ h = NULL ; /*@=onlytrans@*/ if (uh == NULL) - return NULL; + goto errxit; nh = headerLoad(uh); if (nh == NULL) { uh = _free(uh); - return NULL; + goto errxit; } nh->flags &= ~(HEADERFLAG_MAPPED|HEADERFLAG_RDONLY); /* XXX unnecessary */ nh->flags |= HEADERFLAG_ALLOCATED; @@ -1366,6 +1366,13 @@ if (_hdr_debug) fprintf(stderr, "--> h %p ==== %s: blob %p[%u] flags 0x%x\n", nh, __FUNCTION__, nh->blob, (unsigned)nh->bloblen, nh->flags); return nh; + +errxit: + digest = _free(digest); + baseurl = _free(baseurl); + parent = _free(parent); + origin = _free(origin); + return NULL; } static Header headerMap(const void * uh, int map) @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org