summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Müllner <fmuellner@gnome.org>2019-02-19 00:20:45 +0100
committerFlorian Müllner <fmuellner@gnome.org>2019-02-19 09:05:38 +0100
commite16009c93cd0f51489a9cf9fa070486f2a7c8e77 (patch)
treeb0c9d2a71f4b3ac3e4e1ca9e3093ba591a3fc04e
parent4dd76b69bb97e5e4dfbd5ea200ac07c66d9d6dec (diff)
downloadlibcroco-e16009c93cd0f51489a9cf9fa070486f2a7c8e77.tar.gz
om-parser: Don't leak charset in error case
It is freed correctly if creating stmt2 fails, but leaked in case of stmt. Adjust the code so that the cleanup is run for both cases. Spotted by covscan. https://gitlab.gnome.org/GNOME/libcroco/merge_requests/1
-rw-r--r--src/cr-om-parser.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cr-om-parser.c b/src/cr-om-parser.c
index 348cd1f..4576199 100644
--- a/src/cr-om-parser.c
+++ b/src/cr-om-parser.c
@@ -318,8 +318,8 @@ charset (CRDocHandler * a_this, CRString * a_charset,
charset = cr_string_dup (a_charset) ;
stmt = cr_statement_new_at_charset_rule (ctxt->stylesheet, charset);
- g_return_if_fail (stmt);
- stmt2 = cr_statement_append (ctxt->stylesheet->statements, stmt);
+ if (stmt)
+ stmt2 = cr_statement_append (ctxt->stylesheet->statements, stmt);
if (!stmt2) {
if (stmt) {
cr_statement_destroy (stmt);