]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fixed segfault when no misdn.conf exists, reported by Igor Neves, thanks.
authorChristian Richter <christian.richter@beronet.com>
Thu, 9 Nov 2006 13:09:10 +0000 (13:09 +0000)
committerChristian Richter <christian.richter@beronet.com>
Thu, 9 Nov 2006 13:09:10 +0000 (13:09 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@47359 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_misdn.c
channels/misdn/chan_misdn_config.h
channels/misdn_config.c

index 4f2fac44235d1b03211dc9a484ecfecb19fe5aa6..e1302a5fb16b704bdafd263726bd1ccf6a392225 100644 (file)
@@ -4121,8 +4121,11 @@ int load_module(void)
                return 0;
        }
        
-       
-       misdn_cfg_init(max_ports);
+       if (misdn_cfg_init(max_ports)<0) {
+               ast_log(LOG_ERROR, "Unable to initialize mISDN Config System\n");
+               return 0;
+       }
+
        g_config_initialized=1;
        
        misdn_debug = (int *)malloc(sizeof(int) * (max_ports+1));
index db007f57df802671f983c64b22424962b4c99e36..d36686cc0d38461194084df9786a1a63d154dcdd 100644 (file)
@@ -85,7 +85,7 @@ enum misdn_cfg_method {
 };
 
 /* you must call misdn_cfg_init before any other function of this header file */
-void misdn_cfg_init(int max_ports); 
+int misdn_cfg_init(int max_ports); 
 void misdn_cfg_reload(void);
 void misdn_cfg_destroy(void);
 
index 689c8c7c791e8ced49774ffbe209a853dd5181f2..cc0a0fa9b21415b213e79b482769b46302c51e66 100644 (file)
@@ -727,7 +727,7 @@ void misdn_cfg_destroy (void)
        ast_mutex_destroy(&config_mutex);
 }
 
-void misdn_cfg_init (int this_max_ports)
+int misdn_cfg_init (int this_max_ports)
 {
        char config[] = "misdn.conf";
        char *cat, *p;
@@ -737,7 +737,7 @@ void misdn_cfg_init (int this_max_ports)
 
        if (!(cfg = AST_LOAD_CFG(config))) {
                ast_log(LOG_WARNING,"no misdn.conf ?\n");
-               return;
+               return -1;
        }
 
        misdn_cfg_lock();
@@ -783,4 +783,6 @@ void misdn_cfg_init (int this_max_ports)
 
        misdn_cfg_unlock();
        AST_DESTROY_CFG(cfg);
+
+       return 0;
 }