diff options
author | delphij <delphij@FreeBSD.org> | 2015-09-14 18:05:27 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2015-09-14 18:05:27 +0000 |
commit | e9fb7da04057e108c4d9e5461d1679dfd86b34d2 (patch) | |
tree | 7bb8a7d1756bb9833a62ea638a64bb23f146e7a6 | |
parent | 8d98cd221168ce44126124480999e99d3ea88c52 (diff) | |
download | FreeBSD-src-e9fb7da04057e108c4d9e5461d1679dfd86b34d2.zip FreeBSD-src-e9fb7da04057e108c4d9e5461d1679dfd86b34d2.tar.gz |
MFC r287247: Plug memory leaks when running out of memory.
Reported by: clang scan-build
-rw-r--r-- | lib/libgeom/geom_xml2tree.c | 4 |
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; |