aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/debug.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@netfilter.org>2009-12-24 11:11:54 +0100
committerHarald Welte <laforge@netfilter.org>2009-12-24 11:11:54 +0100
commitaa6c9ca48b5dd15bab130b64136dfc8a1311fe8c (patch)
tree6262b46f53ff678619adc09ba1b7d23749ecd943 /openbsc/src/debug.c
parent3cefa9aaa0832b9cf99f3599f7cc1c0499e78cbb (diff)
debug: make sure we always zero-terminate after snprintf()
Diffstat (limited to 'openbsc/src/debug.c')
-rw-r--r--openbsc/src/debug.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/openbsc/src/debug.c b/openbsc/src/debug.c
index c02c086bb..30e27a8d5 100644
--- a/openbsc/src/debug.c
+++ b/openbsc/src/debug.c
@@ -163,9 +163,12 @@ static void _output(struct debug_target *target, unsigned int subsys, char *file
buf[0] = '\0';
/* are we using color */
- if (target->use_color)
+ if (target->use_color) {
snprintf(col, sizeof(col), "%s", color(subsys));
+ col[sizeof(col)-1] = '\0';
+ }
vsnprintf(buf, sizeof(buf), format, ap);
+ buf[sizeof(buf)-1] = '\0';
if (!cont) {
if (target->print_timestamp) {
@@ -175,11 +178,14 @@ static void _output(struct debug_target *target, unsigned int subsys, char *file
timestr = ctime(&tm);
timestr[strlen(timestr)-1] = '\0';
snprintf(tim, sizeof(tim), "%s ", timestr);
+ tim[sizeof(tim)-1] = '\0';
}
snprintf(sub, sizeof(sub), "<%4.4x> %s:%d ", subsys, file, line);
+ sub[sizeof(sub)-1] = '\0';
}
snprintf(final, sizeof(final), "%s%s%s%s\033[0;m", col, tim, sub, buf);
+ final[sizeof(final)-1] = '\0';
target->output(target, final);
}