From e29c992cbff5e498eaaf6bcd918c19b536a61fcf Mon Sep 17 00:00:00 2001 From: Christophe Romain Date: Fri, 28 Aug 2009 16:22:37 +0000 Subject: [PATCH] secure calls to ets:lookup SVN Revision: 2562 --- src/mod_pubsub/mod_pubsub.erl | 10 +++++----- src/mod_pubsub/node_hometree.erl | 6 +++--- src/mod_pubsub/node_hometree_odbc.erl | 2 +- src/mod_pubsub/node_pep.erl | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/mod_pubsub/mod_pubsub.erl b/src/mod_pubsub/mod_pubsub.erl index ec7a42075..e55bf607e 100644 --- a/src/mod_pubsub/mod_pubsub.erl +++ b/src/mod_pubsub/mod_pubsub.erl @@ -3407,7 +3407,7 @@ set_xoption([_ | Opts], NewOpts) -> is_last_item_cache_enabled({_, ServerHost, _}) -> is_last_item_cache_enabled(ServerHost); is_last_item_cache_enabled(Host) -> - case ets:lookup(gen_mod:get_module_proc(Host, config), last_item_cache) of + case catch ets:lookup(gen_mod:get_module_proc(Host, config), last_item_cache) of [{last_item_cache, true}] -> true; _ -> false end. @@ -3431,7 +3431,7 @@ get_cached_item({_, ServerHost, _}, NodeId) -> get_cached_item(Host, NodeId) -> case is_last_item_cache_enabled(Host) of true -> - case ets:lookup(gen_mod:get_module_proc(Host, last_items), NodeId) of + case catch ets:lookup(gen_mod:get_module_proc(Host, last_items), NodeId) of [{NodeId, {ItemId, Payload}}] -> #pubsub_item{itemid = {ItemId, NodeId}, payload = Payload}; _ -> @@ -3444,7 +3444,7 @@ get_cached_item(Host, NodeId) -> %%%% plugin handling plugins(Host) -> - case ets:lookup(gen_mod:get_module_proc(Host, config), plugins) of + case catch ets:lookup(gen_mod:get_module_proc(Host, config), plugins) of [{plugins, []}] -> [?STDNODE]; [{plugins, PL}] -> PL; _ -> [?STDNODE] @@ -3452,7 +3452,7 @@ plugins(Host) -> select_type(ServerHost, Host, Node, Type)-> SelectedType = case Host of {_User, _Server, _Resource} -> - case ets:lookup(gen_mod:get_module_proc(ServerHost, config), pep_mapping) of + case catch ets:lookup(gen_mod:get_module_proc(ServerHost, config), pep_mapping) of [{pep_mapping, PM}] -> proplists:get_value(Node, PM, ?PEPNODE); _ -> ?PEPNODE end; @@ -3535,7 +3535,7 @@ tree_call({_User, Server, _Resource}, Function, Args) -> tree_call(Server, Function, Args); tree_call(Host, Function, Args) -> ?DEBUG("tree_call ~p ~p ~p",[Host, Function, Args]), - Module = case ets:lookup(gen_mod:get_module_proc(Host, config), nodetree) of + Module = case catch ets:lookup(gen_mod:get_module_proc(Host, config), nodetree) of [{nodetree, N}] -> N; _ -> list_to_atom(?TREE_PREFIX ++ ?STDTREE) end, diff --git a/src/mod_pubsub/node_hometree.erl b/src/mod_pubsub/node_hometree.erl index 5bb9be056..e69e866ae 100644 --- a/src/mod_pubsub/node_hometree.erl +++ b/src/mod_pubsub/node_hometree.erl @@ -598,7 +598,7 @@ get_entity_affiliations(Host, Owner) -> SubKey = jlib:jid_tolower(Owner), GenKey = jlib:jid_remove_resource(SubKey), States = mnesia:match_object(#pubsub_state{stateid = {GenKey, '_'}, _ = '_'}), - NodeTree = case ets:lookup(gen_mod:get_module_proc(Host, config), nodetree) of + NodeTree = case catch ets:lookup(gen_mod:get_module_proc(Host, config), nodetree) of [{nodetree, N}] -> N; _ -> nodetree_tree end, @@ -655,7 +655,7 @@ get_entity_subscriptions(Host, Owner) -> ++ mnesia:match_object( #pubsub_state{stateid = {SubKey, '_'}, _ = '_'}) end, - NodeTree = case ets:lookup(gen_mod:get_module_proc(Host, config), nodetree) of + NodeTree = case catch ets:lookup(gen_mod:get_module_proc(Host, config), nodetree) of [{nodetree, N}] -> N; _ -> nodetree_tree end, @@ -759,7 +759,7 @@ get_pending_nodes(Host, Owner) -> affiliation = owner, _ = '_'}), NodeIDs = [ID || #pubsub_state{stateid = {_, ID}} <- States], - NodeTree = case ets:lookup(gen_mod:get_module_proc(Host, config), nodetree) of + NodeTree = case catch ets:lookup(gen_mod:get_module_proc(Host, config), nodetree) of [{nodetree, N}] -> N; _ -> nodetree_tree end, diff --git a/src/mod_pubsub/node_hometree_odbc.erl b/src/mod_pubsub/node_hometree_odbc.erl index df9dfc359..738b3191f 100644 --- a/src/mod_pubsub/node_hometree_odbc.erl +++ b/src/mod_pubsub/node_hometree_odbc.erl @@ -827,7 +827,7 @@ get_pending_nodes(Host, Owner) -> affiliation = owner, _ = '_'}), NodeIDs = [ID || #pubsub_state{stateid = {_, ID}} <- States], - NodeTree = case ets:lookup(gen_mod:get_module_proc(Host, config), nodetree) of + NodeTree = case catch ets:lookup(gen_mod:get_module_proc(Host, config), nodetree) of [{nodetree, N}] -> N; _ -> nodetree_tree_odbc end, diff --git a/src/mod_pubsub/node_pep.erl b/src/mod_pubsub/node_pep.erl index b811ee58b..1ef6d0a10 100644 --- a/src/mod_pubsub/node_pep.erl +++ b/src/mod_pubsub/node_pep.erl @@ -172,7 +172,7 @@ get_entity_affiliations(_Host, Owner) -> SubKey = jlib:jid_tolower(Owner), GenKey = jlib:jid_remove_resource(SubKey), States = mnesia:match_object(#pubsub_state{stateid = {GenKey, '_'}, _ = '_'}), - NodeTree = case ets:lookup(gen_mod:get_module_proc(D, config), nodetree) of + NodeTree = case catch ets:lookup(gen_mod:get_module_proc(D, config), nodetree) of [{nodetree, N}] -> N; _ -> nodetree_tree end, @@ -204,7 +204,7 @@ get_entity_subscriptions(_Host, Owner) -> ++ mnesia:match_object( #pubsub_state{stateid = {SubKey, '_'}, _ = '_'}) end, - NodeTree = case ets:lookup(gen_mod:get_module_proc(D, config), nodetree) of + NodeTree = case catch ets:lookup(gen_mod:get_module_proc(D, config), nodetree) of [{nodetree, N}] -> N; _ -> nodetree_tree end, -- 2.50.1