[libvirt] [PATCH 7/3] rpc: avoid crash on error
Detected by Coverity. Freeing the wrong variable results in both a memory leak and the likelihood of the caller dereferencing through a freed pointer. * src/rpc/virnettlscontext.c (virNetTLSSessionNew): Free correct variable. --- src/rpc/virnettlscontext.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/rpc/virnettlscontext.c b/src/rpc/virnettlscontext.c index be08207..eeffe54 100644 --- a/src/rpc/virnettlscontext.c +++ b/src/rpc/virnettlscontext.c @@ -1164,17 +1164,17 @@ virNetTLSSessionPtr virNetTLSSessionNew(virNetTLSContextPtr ctxt, if (VIR_ALLOC(sess) 0) { virReportOOMError(); return NULL; } if (virMutexInit(sess-lock) 0) { virNetError(VIR_ERR_INTERNAL_ERROR, %s, _(Failed to initialized mutex)); -VIR_FREE(ctxt); +VIR_FREE(sess); return NULL; } sess-refs = 1; if (hostname !(sess-hostname = strdup(hostname))) { virReportOOMError(); goto error; -- 1.7.4.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 7/3] rpc: avoid crash on error
On 08/02/2011 03:38 PM, Eric Blake wrote: Detected by Coverity. Freeing the wrong variable results in both a memory leak and the likelihood of the caller dereferencing through a freed pointer. * src/rpc/virnettlscontext.c (virNetTLSSessionNew): Free correct variable. --- src/rpc/virnettlscontext.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/rpc/virnettlscontext.c b/src/rpc/virnettlscontext.c index be08207..eeffe54 100644 --- a/src/rpc/virnettlscontext.c +++ b/src/rpc/virnettlscontext.c @@ -1164,17 +1164,17 @@ virNetTLSSessionPtr virNetTLSSessionNew(virNetTLSContextPtr ctxt, if (VIR_ALLOC(sess) 0) { virReportOOMError(); return NULL; } if (virMutexInit(sess-lock) 0) { virNetError(VIR_ERR_INTERNAL_ERROR, %s, _(Failed to initialized mutex)); -VIR_FREE(ctxt); +VIR_FREE(sess); return NULL; You could just as well replace this with a goto error, but ACK anyway. } sess-refs = 1; if (hostname !(sess-hostname = strdup(hostname))) { virReportOOMError(); goto error; -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list