summaryrefslogtreecommitdiffstats
path: root/lib/libgeom
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2015-09-14 18:05:27 +0000
committerdelphij <delphij@FreeBSD.org>2015-09-14 18:05:27 +0000
commite9fb7da04057e108c4d9e5461d1679dfd86b34d2 (patch)
tree7bb8a7d1756bb9833a62ea638a64bb23f146e7a6 /lib/libgeom
parent8d98cd221168ce44126124480999e99d3ea88c52 (diff)
downloadFreeBSD-src-e9fb7da04057e108c4d9e5461d1679dfd86b34d2.zip
FreeBSD-src-e9fb7da04057e108c4d9e5461d1679dfd86b34d2.tar.gz
MFC r287247: Plug memory leaks when running out of memory.
Reported by: clang scan-build
Diffstat (limited to 'lib/libgeom')
-rw-r--r--lib/libgeom/geom_xml2tree.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/libgeom/geom_xml2tree.c b/lib/libgeom/geom_xml2tree.c
index 54a31ca..2a373d7 100644
--- a/lib/libgeom/geom_xml2tree.c
+++ b/lib/libgeom/geom_xml2tree.c
@@ -275,15 +275,17 @@ EndElement(void *userData, const char *name)
XML_StopParser(mt->parser, 0);
warn("Cannot allocate memory during processing of '%s' "
"element", name);
+ free(p);
return;
}
gc->lg_name = strdup(name);
if (gc->lg_name == NULL) {
- free(gc);
mt->error = errno;
XML_StopParser(mt->parser, 0);
warn("Cannot allocate memory during processing of '%s' "
"element", name);
+ free(gc);
+ free(p);
return;
}
gc->lg_val = p;
OpenPOWER on IntegriCloud