From 44cfe7459c8d9bc883b39fbdc18a8ee7685bebde Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Mon, 10 Nov 2014 19:11:01 +0000 Subject: fix leak of gadget on error path. (coverity 1109875) --- render/box_construct.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'render/box_construct.c') diff --git a/render/box_construct.c b/render/box_construct.c index c73d0590c..889865cb2 100644 --- a/render/box_construct.c +++ b/render/box_construct.c @@ -2576,8 +2576,10 @@ bool box_select(BOX_SPECIAL_PARAMS) gadget->html = content; err = dom_node_get_first_child(n, &c); - if (err != DOM_NO_ERR) + if (err != DOM_NO_ERR) { + form_free_control(gadget); return false; + } while (c != NULL) { dom_string *name; @@ -2585,6 +2587,7 @@ bool box_select(BOX_SPECIAL_PARAMS) err = dom_node_get_node_name(c, &name); if (err != DOM_NO_ERR) { dom_node_unref(c); + form_free_control(gadget); return false; } @@ -2624,7 +2627,7 @@ bool box_select(BOX_SPECIAL_PARAMS) c2) == false) { dom_node_unref(c2); dom_node_unref(c); - goto no_memory; + return false; } } else { dom_string_unref(c2_name); @@ -2656,6 +2659,7 @@ bool box_select(BOX_SPECIAL_PARAMS) if (gadget->data.select.num_items == 0) { /* no options: ignore entire select */ + form_free_control(gadget); return true; } -- cgit v1.2.3