aboutsummaryrefslogtreecommitdiff
path: root/lib/libgeom/geom_xml2tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libgeom/geom_xml2tree.c')
-rw-r--r--lib/libgeom/geom_xml2tree.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/libgeom/geom_xml2tree.c b/lib/libgeom/geom_xml2tree.c
index 2c23361b16667..2a373d7f31d54 100644
--- a/lib/libgeom/geom_xml2tree.c
+++ b/lib/libgeom/geom_xml2tree.c
@@ -275,18 +275,20 @@ 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 ? p : strdup("1");
+ gc->lg_val = p;
LIST_INSERT_HEAD(c, gc, lg_config);
return;
}