]> granicus.if.org Git - ejabberd/commitdiff
secure calls to ets:lookup
authorChristophe Romain <christophe.romain@process-one.net>
Fri, 28 Aug 2009 16:22:37 +0000 (16:22 +0000)
committerChristophe Romain <christophe.romain@process-one.net>
Fri, 28 Aug 2009 16:22:37 +0000 (16:22 +0000)
SVN Revision: 2562

src/mod_pubsub/mod_pubsub.erl
src/mod_pubsub/node_hometree.erl
src/mod_pubsub/node_hometree_odbc.erl
src/mod_pubsub/node_pep.erl

index ec7a420758fbc73b11dab7ea33b02e7a9edaf68f..e55bf607e1b6a969fb03c8cccdba70a4386857b3 100644 (file)
@@ -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,
index 5bb9be056e27883669e7ae7c166b84c37a9c1223..e69e866ae1ca3d59650a25ac12f27f4848e433c5 100644 (file)
@@ -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,
index df9dfc35918ba98763915ac30f59053371dd89e7..738b3191f20d095128c2b9e7ee2b14ac20bdb8c9 100644 (file)
@@ -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,
index b811ee58b6cb34ab6a0693c1d868627c730b51ff..1ef6d0a104bff8ab75c73302ebb66b75ee9cc3f4 100644 (file)
@@ -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,