Module: kamailio
Branch: master
Commit: 56e41533cae52cf5f782064ed23393d2d18aff08
URL: 
https://github.com/kamailio/kamailio/commit/56e41533cae52cf5f782064ed23393d2d18aff08

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date: 2015-07-28T09:47:48+02:00

permissions: safety check if hash tables exist for rpc dump commands

- reported by Olle E. Johansson, GH#248

---

Modified: modules/permissions/mi.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/56e41533cae52cf5f782064ed23393d2d18aff08.diff
Patch: 
https://github.com/kamailio/kamailio/commit/56e41533cae52cf5f782064ed23393d2d18aff08.patch

---

diff --git a/modules/permissions/mi.c b/modules/permissions/mi.c
index 35f2cca..844a86e 100644
--- a/modules/permissions/mi.c
+++ b/modules/permissions/mi.c
@@ -92,7 +92,7 @@ struct mi_root* mi_trusted_dump(struct mi_root *cmd_tree, 
void *param)
 void rpc_trusted_dump(rpc_t* rpc, void* c) {
 
        if (hash_table==NULL) {
-               rpc->fault(c, 500, "Reload failed. No trusted table");
+               rpc->fault(c, 500, "No trusted table");
                return;
        }
 
@@ -154,6 +154,10 @@ struct mi_root* mi_address_dump(struct mi_root *cmd_tree, 
void *param)
  */
 void rpc_address_dump(rpc_t* rpc, void* c) {
 
+       if(addr_hash_table==NULL) {
+               rpc->fault(c, 500, "No address table");
+               return;
+       }
        if(addr_hash_table_rpc_print(*addr_hash_table, rpc, c) < 0 ) {
                LM_DBG("failed to print a subnet_table dump\n");
        }
@@ -185,6 +189,10 @@ struct mi_root* mi_subnet_dump(struct mi_root *cmd_tree, 
void *param)
  * RPC function to dump subnet table
  */
 void rpc_subnet_dump(rpc_t* rpc, void* c) {
+       if(subnet_table==NULL) {
+               rpc->fault(c, 500, "No subnet table");
+               return;
+       }
        if(subnet_table_rpc_print(*subnet_table, rpc, c) < 0) {
                LM_DBG("failed to print a subnet_table dump\n");
        }
@@ -217,6 +225,10 @@ struct mi_root* mi_domain_name_dump(struct mi_root 
*cmd_tree, void *param)
  */
 void rpc_domain_name_dump(rpc_t* rpc, void* c) {
 
+       if(domain_list_table==NULL) {
+               rpc->fault(c, 500, "No domain list table");
+               return;
+       }
        if ( domain_name_table_rpc_print(*domain_list_table, rpc, c) < 0 ) {
                LM_DBG("failed to print a subnet_table dump\n");
        }


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to