From f8b3091f42a554508600a79d2492ea6368fbd46b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Bollo?= Date: Fri, 13 Jul 2018 11:13:29 +0200 Subject: [PATCH] afb-wsj1: Fix json parsing of unterminated MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/afb-wsj1.c | 2 ++ 1 file changed, 2 insertions(+) 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? */ -- 2.16.6