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

Author: Daniel-Constantin Mierla <mico...@gmail.com>
Committer: Daniel-Constantin Mierla <mico...@gmail.com>
Date: 2017-08-03T05:02:41+02:00

cplc: safety checks for parameters

---

Modified: src/modules/cplc/cpl_nonsig.c
Modified: src/modules/cplc/cpl_switches.h

---

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

---

diff --git a/src/modules/cplc/cpl_nonsig.c b/src/modules/cplc/cpl_nonsig.c
index d87c02d18f..ba53ee0ab6 100644
--- a/src/modules/cplc/cpl_nonsig.c
+++ b/src/modules/cplc/cpl_nonsig.c
@@ -230,11 +230,18 @@ void cpl_aux_process( int cmd_out, char *log_dir)
                LM_ERR("cannot set to IGNORE SIGCHLD signal\n");
        }
 
+       file[0] = '\0';
+       file_ptr = file;
        /* set the path for logging */
        if (log_dir) {
-               strcpy( file, log_dir);
-               file_ptr = file + strlen(log_dir);
-               *(file_ptr++) = '/';
+               if(strlen(log_dir)>=MAX_LOG_DIR_SIZE) {
+                       /* fallback */
+                       LM_ERR("log dir path is too long, ignoring - check 
workdir\n");
+               } else {
+                       strcpy(file, log_dir);
+                       file_ptr = file + strlen(log_dir);
+                       *(file_ptr++) = '/';
+               }
        }
 
        while(1) {
diff --git a/src/modules/cplc/cpl_switches.h b/src/modules/cplc/cpl_switches.h
index 4a99b2cbe4..2accfd21b9 100644
--- a/src/modules/cplc/cpl_switches.h
+++ b/src/modules/cplc/cpl_switches.h
@@ -873,6 +873,12 @@ inline static int is_lang_tag_matching(str *range,str 
*cpl_tag,str *cpl_subtag)
        str tag = {0,0};
        str subtag = {0,0};
 
+       if(range==NULL || cpl_tag==NULL || cpl_subtag==NULL) {
+               return -1;
+       }
+       if(range->s==NULL || cpl_tag->s==NULL || cpl_subtag->s==NULL) {
+               return -1;
+       }
        c = range->s;
        end = range->s + range->len;
 


_______________________________________________
Kamailio (SER) - Development Mailing List
sr-dev@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to