From 9a02a41cd61d7fa4a58d234e7240ff41205a7e54 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sat, 30 Nov 2019 20:36:48 +0000 Subject: box_construct: Do not leak attributes in boxes Signed-off-by: Daniel Silverstone --- content/handlers/html/box_construct.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'content') diff --git a/content/handlers/html/box_construct.c b/content/handlers/html/box_construct.c index f0d68ac2e..50d102729 100644 --- a/content/handlers/html/box_construct.c +++ b/content/handlers/html/box_construct.c @@ -2998,17 +2998,20 @@ bool box_embed(BOX_SPECIAL_PARAMS) err = dom_attr_get_name(attr, &name); if (err != DOM_NO_ERR) { + dom_node_unref(attr); dom_namednodemap_unref(attrs); return false; } if (dom_string_caseless_lwc_isequal(name, corestring_lwc_src)) { + dom_node_unref(attr); dom_string_unref(name); continue; } err = dom_attr_get_value(attr, &value); if (err != DOM_NO_ERR) { + dom_node_unref(attr); dom_string_unref(name); dom_namednodemap_unref(attrs); return false; @@ -3016,6 +3019,7 @@ bool box_embed(BOX_SPECIAL_PARAMS) param = talloc(content->bctx, struct object_param); if (param == NULL) { + dom_node_unref(attr); dom_string_unref(value); dom_string_unref(name); dom_namednodemap_unref(attrs); @@ -3030,6 +3034,7 @@ bool box_embed(BOX_SPECIAL_PARAMS) dom_string_unref(value); dom_string_unref(name); + dom_node_unref(attr); if (param->name == NULL || param->value == NULL || param->valuetype == NULL) { -- cgit v1.2.3