diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2017-01-05 08:29:10 +0100 |
---|---|---|
committer | Andreas Eversberg <jolly@eversberg.eu> | 2017-01-05 08:36:52 +0100 |
commit | e1cbb1649ab20a5df10af5a3d18cf4193637058d (patch) | |
tree | aa95c4f10035723e3f0bd507d4d1ec39bf9b1031 /src/common | |
parent | 286c11cab48678c9241e59b139464e8169ec39f0 (diff) |
Fixed memory leak in PDEBUG(). Thanx to valgrind finding that!
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/debug.c | 4 |
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, '/'))) |