From a40e07510208456eeb52776a5ab1d8eb90625fbc Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Sat, 26 Oct 2013 20:43:36 +0100 Subject: parser: Always perform UTF-8 validation JSON is defined to be encoded using UTF-8, so we should not rely on the documentation saying so when parsing, but validate the input and eventually provide a recoverable parsing error. --- json-glib/json-parser.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'json-glib/json-parser.c') diff --git a/json-glib/json-parser.c b/json-glib/json-parser.c index 12c3ebf..edc13f0 100644 --- a/json-glib/json-parser.c +++ b/json-glib/json-parser.c @@ -878,6 +878,15 @@ json_parser_load (JsonParser *parser, json_parser_clear (parser); + if (!g_utf8_validate (data, -1, NULL)) + { + g_set_error_literal (error, JSON_PARSER_ERROR, + JSON_PARSER_ERROR_INVALID_DATA, + _("JSON data must be UTF-8 encoded")); + g_signal_emit (parser, parser_signals[ERROR], 0, *error); + return FALSE; + } + scanner = json_scanner_create (parser); json_scanner_input_text (scanner, data, length); -- cgit v1.2.1