From e1cbb1649ab20a5df10af5a3d18cf4193637058d Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Thu, 5 Jan 2017 08:29:10 +0100 Subject: [PATCH] Fixed memory leak in PDEBUG(). Thanx to valgrind finding that! --- src/common/debug.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/common/debug.c b/src/common/debug.c index 03d5d89..5a83ed2 100644 --- a/src/common/debug.c +++ b/src/common/debug.c @@ -64,6 +64,7 @@ extern int num_kanal; void _printdebug(const char *file, const char __attribute__((unused)) *function, int line, int cat, int level, int chan, const char *fmt, ...) { char buffer[4096], *b = buffer; + int s = sizeof(buffer) - 1; const char *p; va_list args; @@ -76,13 +77,14 @@ void _printdebug(const char *file, const char __attribute__((unused)) *function, if (num_kanal > 1 && chan >= 0) { sprintf(buffer, "(chan %d) ", chan); b = strchr(buffer, '\0'); + s -= strlen(buffer); } if (!(debug_mask & (1 << cat))) return; va_start(args, fmt); - vsnprintf(b, sizeof(buffer) - strlen(buffer) - 1, fmt, args); + vsnprintf(b, s, fmt, args); va_end(args); while ((p = strchr(file, '/')))