summaryrefslogtreecommitdiffstats
path: root/src/channel.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/channel.c')
-rw-r--r--src/channel.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/channel.c b/src/channel.c
index cab920c22b..35875ca9a7 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -688,7 +688,9 @@ channel_parse_json(int ch_idx)
ret = json_decode(&reader, &listtv);
if (ret == OK)
{
- if (listtv.v_type != VAR_LIST)
+ /* Only accept the response when it is a list with at least two
+ * items. */
+ if (listtv.v_type != VAR_LIST || listtv.vval.v_list->lv_len < 2)
{
/* TODO: give error */
clear_tv(&listtv);
@@ -909,13 +911,6 @@ may_invoke_callback(int idx)
}
list = listtv->vval.v_list;
- if (list->lv_len < 2)
- {
- /* TODO: give error */
- clear_tv(listtv);
- return FALSE;
- }
-
argv[1] = list->lv_first->li_next->li_tv;
typetv = &list->lv_first->li_tv;
if (typetv->v_type == VAR_STRING)