Explorar o código

cplc: null terminate log string

- reset field to avoid double free
Daniel-Constantin Mierla %!s(int64=7) %!d(string=hai) anos
pai
achega
66051f400c
Modificáronse 2 ficheiros con 3 adicións e 1 borrados
  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;
 	}