diff options
Diffstat (limited to 'src/channel.c')
-rw-r--r-- | src/channel.c | 11 |
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) |