From 028e540bc2b78f87e5a1d2f0c36126b7636f2809 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Fri, 26 Oct 2012 10:10:01 +0100 Subject: parser: Empty member names are not valid When parsing a JSON object, a member name has to be a valid string, not an empty one. --- json-glib/json-parser.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'json-glib/json-parser.c') diff --git a/json-glib/json-parser.c b/json-glib/json-parser.c index d79d21c..4a55763 100644 --- a/json-glib/json-parser.c +++ b/json-glib/json-parser.c @@ -588,6 +588,19 @@ json_parse_object (JsonParser *parser, /* member name */ token = json_scanner_get_next_token (scanner); name = g_strdup (scanner->value.v_string); + if (name == NULL || *name == '\0') + { + JSON_NOTE (PARSER, "Empty object member name"); + + priv->error_code = JSON_PARSER_ERROR_EMPTY_MEMBER_NAME; + + json_object_unref (object); + json_node_free (priv->current_node); + priv->current_node = old_current; + + return G_TOKEN_STRING; + } + JSON_NOTE (PARSER, "Object member '%s'", name); /* a colon separates names from values */ -- cgit v1.2.1