Fix bad memory handling in traceCommand

This commit is contained in:
Douglas Clowes
2015-07-24 12:36:28 +10:00
parent 4f411f66ca
commit 8a91653f13

View File

@@ -286,12 +286,13 @@ void traceCommand(char *id, char *format, ...)
va_end(argptr); va_end(argptr);
if(len >= sizeof(buffer)){ if(len >= sizeof(buffer)){
buf = malloc(len+1); buf = malloc(len+1);
memset(buf,0,len+1);
if(buf != NULL){ if(buf != NULL){
memset(buf,0,len+1);
va_start(argptr,format); va_start(argptr,format);
len = vsnprintf(buf, len+1,format,argptr); len = vsnprintf(buf, len+1,format,argptr);
va_end(argptr); va_end(argptr);
traceprint("com",id,buf); traceprint("com",id,buf);
free(buf);
} }
} else { } else {
traceprint("com",id,buffer); traceprint("com",id,buffer);