From 765f062a4563901ecf9881ac541fc248aa30d44d Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Wed, 29 Mar 2017 22:08:21 +0200 Subject: xplist: Prevent memory leak(s) when parsing fails Credit to OSS-Fuzz --- src/xplist.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/xplist.c b/src/xplist.c index 022f1cd..f896030 100644 --- a/src/xplist.c +++ b/src/xplist.c @@ -1221,7 +1221,7 @@ static void node_from_xml(parse_ctx ctx, plist_t *plist) if (!keyname) { PLIST_XML_ERR("missing key name while adding dict item\n"); ctx->err++; - break; + goto err_out; } plist_dict_set_item(parent, keyname, subnode); break; @@ -1232,7 +1232,7 @@ static void node_from_xml(parse_ctx ctx, plist_t *plist) /* should not happen */ PLIST_XML_ERR("parent is not a structered node\n"); ctx->err++; - break; + goto err_out; } } if (!is_empty && (data->type == PLIST_DICT || data->type == PLIST_ARRAY)) { -- cgit v1.1-32-gdbae