Ver código fonte

cplc: null terminate log string

- reset field to avoid double free
Daniel-Constantin Mierla 7 anos atrás
pai
commit
66051f400c
2 arquivos alterados com 3 adições e 1 exclusões
  1. 2 1
      src/modules/cplc/cpl_log.c
  2. 1 0
      src/modules/cplc/cpl_time.c

+ 2 - 1
src/modules/cplc/cpl_log.c

@@ -84,7 +84,7 @@ void compile_logs( str *log)
 		log->len += cpl_logs[i].len;
 
 	/* get a buffer */
-	log->s = (char*)pkg_malloc(log->len);
+	log->s = (char*)pkg_malloc(log->len+1);
 	if (log->s==0) {
 		LM_ERR("no more pkg mem\n");
 		log->len = 0;
@@ -97,6 +97,7 @@ void compile_logs( str *log)
 		memcpy( p, cpl_logs[i].s, cpl_logs[i].len);
 		p += cpl_logs[i].len;
 	}
+	log->s[log->len] = '\0';
 
 	return;
 }

+ 1 - 0
src/modules/cplc/cpl_time.c

@@ -328,6 +328,7 @@ int tr_byxxx_init(tr_byxxx_p _bxp, int _nr)
 	if(!_bxp->req)
 	{
 		pkg_free(_bxp->xxx);
+		_bxp->xxx = NULL;
 		return -1;
 	}