aboutsummaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2017-01-05 08:29:10 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2017-01-05 08:36:52 +0100
commite1cbb1649ab20a5df10af5a3d18cf4193637058d (patch)
treeaa95c4f10035723e3f0bd507d4d1ec39bf9b1031 /src/common
parent286c11cab48678c9241e59b139464e8169ec39f0 (diff)
Fixed memory leak in PDEBUG(). Thanx to valgrind finding that!
Diffstat (limited to 'src/common')
-rw-r--r--src/common/debug.c4
1 files changed, 3 insertions, 1 deletions
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, '/')))