From cc36c7e48d6e42d2f1e46ec39378bd9051cb2a2c Mon Sep 17 00:00:00 2001 From: JimMoen Date: Tue, 12 Oct 2021 15:25:24 +0800 Subject: [PATCH] fix(mgmt_api): add page limit check. --- apps/emqx_management/src/emqx_mgmt_api.erl | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/apps/emqx_management/src/emqx_mgmt_api.erl b/apps/emqx_management/src/emqx_mgmt_api.erl index ef8d7c70c..a6bfaa3e8 100644 --- a/apps/emqx_management/src/emqx_mgmt_api.erl +++ b/apps/emqx_management/src/emqx_mgmt_api.erl @@ -120,7 +120,14 @@ node_query(Node, Params, Tab, QsSchema, QueryFun) -> Limit = b2i(limit(Params)), Page = b2i(page(Params)), Meta = #{page => Page, limit => Limit, count => 0}, - do_node_query(Node, Tab, Qs, QueryFun, Meta). + case Meta of + #{page := Page, limit := Limit} + when Page < 1; Limit < 1 -> + {error, page_limit_invalid}; + _ -> + do_node_query(Node, Tab, Qs, QueryFun, Meta) + end. + %% @private do_node_query(Node, Tab, Qs, QueryFun, Meta) -> @@ -169,7 +176,13 @@ cluster_query(Params, Tab, QsSchema, QueryFun) -> Page = b2i(page(Params)), Nodes = ekka_mnesia:running_nodes(), Meta = #{page => Page, limit => Limit, count => 0}, - do_cluster_query(Nodes, Tab, Qs, QueryFun, Meta). + case Meta of + #{page := Page, limit := Limit} + when Page < 1; Limit < 1 -> + {error, page_limit_invalid}; + _ -> + do_cluster_query(Nodes, Tab, Qs, QueryFun, Meta) + end. %% @private do_cluster_query(Nodes, Tab, Qs, QueryFun, Meta) ->