[libvirt] [PATCH 7/3] rpc: avoid crash on error
Laine Stump
laine at laine.org
Tue Aug 2 20:55:47 UTC 2011
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;
More information about the libvir-list
mailing list