From: José Bollo Date: Fri, 13 Jul 2018 09:13:29 +0000 (+0200) Subject: afb-wsj1: Fix json parsing of unterminated X-Git-Tag: 5.99.2~10 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-binder.git;a=commitdiff_plain;h=f8b3091f42a554508600a79d2492ea6368fbd46b afb-wsj1: Fix json parsing of unterminated When receiving 'false', 'true' or 1, the tokener isn't able to terminate its job without ambiguity. Catch this case to force a terminating character. Change-Id: I5c78f759852060ccf0fac87b3f6fc33a65bf30c9 Signed-off-by: José Bollo --- diff --git a/src/afb-wsj1.c b/src/afb-wsj1.c index 79cb66e9..466b58ad 100644 --- a/src/afb-wsj1.c +++ b/src/afb-wsj1.c @@ -392,6 +392,8 @@ struct json_object *afb_wsj1_msg_object_j(struct afb_wsj1_msg *msg) pthread_mutex_lock(&msg->wsj1->mutex); json_tokener_reset(msg->wsj1->tokener); object = json_tokener_parse_ex(msg->wsj1->tokener, msg->object_s, (int)msg->object_s_length); + if (object == NULL && json_tokener_get_error(msg->wsj1->tokener) == json_tokener_continue) + object = json_tokener_parse_ex(msg->wsj1->tokener, "", 1); pthread_mutex_unlock(&msg->wsj1->mutex); if (object == NULL) { /* lazy error detection of json request. Is it to improve? */