From 794593a4f8208c8c52363e4bdf7103f5f215a9fc Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Mon, 7 Mar 2011 22:42:33 +0100 Subject: cssprovider: return immediately if there's remaining data behind a parsed value parse_value() could fill in a GError, but yet (incorrectly) return G_TOKEN_NONE, having the GError leaked as a result. https://bugzilla.gnome.org/show_bug.cgi?id=642604 , Reported by Felix Riemann. --- gtk/gtkcssprovider.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gtk') diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c index a0be44ab9f..be6fbd783a 100644 --- a/gtk/gtkcssprovider.c +++ b/gtk/gtkcssprovider.c @@ -3087,12 +3087,16 @@ css_provider_parse_value (GtkCssProvider *css_provider, parsed = FALSE; } + if (end) + SKIP_SPACES (end); + if (end && *end) { /* Set error position in the scanner * according to what we've parsed so far */ priv->value_pos += (end - value_str); + parsed = FALSE; if (error && !*error) g_set_error_literal (error, -- cgit v1.2.1