On Thu, Feb 04, 2010 at 05:55:58PM +0100, Jim Meyering wrote: > > > >From cc06142a81dc1891dc75306b986ea331f5fd5368 Mon Sep 17 00:00:00 2001 > From: Jim Meyering <meyering@xxxxxxxxxx> > Date: Thu, 4 Feb 2010 17:55:15 +0100 > Subject: [PATCH] sexpr_string: avoid leak on OOM error path > > * src/xen/sexpr.c (sexpr_string): Free sexpr buffer upon allocation > failure. > --- > src/xen/sexpr.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/src/xen/sexpr.c b/src/xen/sexpr.c > index 085500d..669f8a2 100644 > --- a/src/xen/sexpr.c > +++ b/src/xen/sexpr.c > @@ -107,30 +107,31 @@ sexpr_nil(void) > struct sexpr * > sexpr_string(const char *str, ssize_t len) > { > struct sexpr *ret = sexpr_new(); > > if (ret == NULL) > return ret; > ret->kind = SEXPR_VALUE; > if (len > 0) { > ret->u.value = strndup(str, len); > } else { > ret->u.value = strdup(str); > } > > if (ret->u.value == NULL) { > + VIR_FREE(ret); > return NULL; > } > > return ret; > } > > /** > * sexpr_cons: > * @car: the left operand > * @cdr: the right operand > * > * Implement the CONS operation assembling 2 existing S-Expressions. > * Note that in case of error the input data are not freed. > * > * Returns the resulting S-Expression pointer or NULL in case of error. ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list