[sr-dev] git:master:b05f3637: cplc: safety checks for parameters

Daniel-Constantin Mierla miconda at gmail.com
Thu Aug 3 05:28:59 CEST 2017


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

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at 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;
 




More information about the sr-dev mailing list