From: Badlop Date: Thu, 20 Oct 2016 19:56:19 +0000 (+0200) Subject: Nidx may be integer or binary, so use jlib:i2l instead X-Git-Tag: 16.12~25^2~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2ab72bcd009536a6bef2be04c71470f17e19d0b2;p=ejabberd Nidx may be integer or binary, so use jlib:i2l instead As reported in https://www.ejabberd.im/forum/28580/erlang-function-integertobinary1-throwing-badargs-exception --- diff --git a/src/node_flat_sql.erl b/src/node_flat_sql.erl index 15cf9b37a..61156ee06 100644 --- a/src/node_flat_sql.erl +++ b/src/node_flat_sql.erl @@ -688,7 +688,7 @@ get_items(Nidx, _From, before -> {<<">">>, <<"asc">>}; _ -> {<<"is not">>, <<"desc">>} end, - SNidx = integer_to_binary(Nidx), + SNidx = jlib:i2l(Nidx), [AttrName, Id] = case I of undefined when IncIndex =/= undefined -> case catch @@ -790,7 +790,7 @@ get_items(Nidx, JID, AccessModel, PresenceSubscription, RosterGroup, _SubId, RSM get_last_items(Nidx, _From, Count) -> Limit = jlib:i2l(Count), - SNidx = integer_to_binary(Nidx), + SNidx = jlib:i2l(Nidx), Query = fun(mssql, _) -> ejabberd_sql:sql_query_t( [<<"select top ">>, Limit, @@ -890,7 +890,7 @@ del_items(Nidx, [ItemId]) -> del_item(Nidx, ItemId); del_items(Nidx, ItemIds) -> I = str:join([[<<"'">>, ejabberd_sql:escape(X), <<"'">>] || X <- ItemIds], <<",">>), - SNidx = integer_to_binary(Nidx), + SNidx = jlib:i2l(Nidx), catch ejabberd_sql:sql_query_t([<<"delete from pubsub_item where itemid in (">>, I, <<") and nodeid='">>, SNidx, <<"';">>]).