summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Müllner <fmuellner@gnome.org>2019-02-19 01:00:26 +0100
committerFlorian Müllner <fmuellner@gnome.org>2019-02-19 09:05:38 +0100
commit1d7eb73aad96f5c297ff9859253cca4dea0a75dd (patch)
tree950f1c812429bd3883e2e6d1f2f9942f12b6fba0
parent27f0d7f3a0615e0ccf5514545d3c8c5232d8c3fb (diff)
downloadlibcroco-1d7eb73aad96f5c297ff9859253cca4dea0a75dd.tar.gz
statement: Fix string leaks in error case
Spotted by covscan. https://gitlab.gnome.org/GNOME/libcroco/merge_requests/1
-rw-r--r--src/cr-statement.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cr-statement.c b/src/cr-statement.c
index 00430d5..8463fcb 100644
--- a/src/cr-statement.c
+++ b/src/cr-statement.c
@@ -201,6 +201,8 @@ parse_page_property_cb (CRDocHandler * a_this,
g_return_if_fail (name);
decl = cr_declaration_new (stmt, name, a_expression);
+ if (!decl)
+ cr_string_destroy(name);
g_return_if_fail (decl);
decl->important = a_important;
stmt->kind.page_rule->decl_list =
@@ -327,6 +329,8 @@ parse_at_media_property_cb (CRDocHandler * a_this,
g_return_if_fail (name);
decl = cr_declaration_new (stmt, name, a_value);
+ if (!decl)
+ cr_string_destroy(name);
g_return_if_fail (decl);
decl->important = a_important;
status = cr_statement_ruleset_append_decl (stmt, decl);
@@ -434,6 +438,8 @@ parse_ruleset_property_cb (CRDocHandler * a_this,
g_return_if_fail (stringue);
decl = cr_declaration_new (ruleset, stringue, a_value);
+ if (!decl)
+ cr_string_destroy (stringue);
g_return_if_fail (decl);
decl->important = a_important;
status = cr_statement_ruleset_append_decl (ruleset, decl);