debug: make sure we always zero-terminate after snprintf()

This commit is contained in:
Harald Welte 2009-12-24 11:11:54 +01:00
parent 3cefa9aaa0
commit aa6c9ca48b
1 changed files with 7 additions and 1 deletions

View File

@ -163,9 +163,12 @@ static void _output(struct debug_target *target, unsigned int subsys, char *file
buf[0] = '\0'; buf[0] = '\0';
/* are we using color */ /* are we using color */
if (target->use_color) if (target->use_color) {
snprintf(col, sizeof(col), "%s", color(subsys)); snprintf(col, sizeof(col), "%s", color(subsys));
col[sizeof(col)-1] = '\0';
}
vsnprintf(buf, sizeof(buf), format, ap); vsnprintf(buf, sizeof(buf), format, ap);
buf[sizeof(buf)-1] = '\0';
if (!cont) { if (!cont) {
if (target->print_timestamp) { if (target->print_timestamp) {
@ -175,11 +178,14 @@ static void _output(struct debug_target *target, unsigned int subsys, char *file
timestr = ctime(&tm); timestr = ctime(&tm);
timestr[strlen(timestr)-1] = '\0'; timestr[strlen(timestr)-1] = '\0';
snprintf(tim, sizeof(tim), "%s ", timestr); snprintf(tim, sizeof(tim), "%s ", timestr);
tim[sizeof(tim)-1] = '\0';
} }
snprintf(sub, sizeof(sub), "<%4.4x> %s:%d ", subsys, file, line); 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); snprintf(final, sizeof(final), "%s%s%s%s\033[0;m", col, tim, sub, buf);
final[sizeof(final)-1] = '\0';
target->output(target, final); target->output(target, final);
} }