From 15d203c7be957ba0e63288e2d95cbd078d94eb21 Mon Sep 17 00:00:00 2001 From: Michael Meffie Date: Wed, 15 Jul 2009 12:46:56 -0400 Subject: [PATCH] Fix assert message to avoid printing garbage Fix an off by one error in assert() to avoid printing garbage characters to the log. Remove the newline character generated by ctime() to match the format generated by the other logging functions. FIXES 124613 Reviewed-on: http://gerrit.openafs.org/102 Verified-by: Russ Allbery Reviewed-by: Russ Allbery --- src/util/assert.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/util/assert.c b/src/util/assert.c index 4755f22..2368659 100644 --- a/src/util/assert.c +++ b/src/util/assert.c @@ -28,16 +28,19 @@ afs_NTAbort(void) } #endif +#define TIMESTAMP_BUFFER_SIZE 26 /* including the null */ +#define TIMESTAMP_NEWLINE_POS 24 /* offset to the newline placed by ctime */ void AssertionFailed(char *file, int line) { - char tdate[26]; + char tdate[TIMESTAMP_BUFFER_SIZE]; time_t when; time(&when); - (void)afs_ctime(&when, tdate, 25); - fprintf(stderr, "%s: Assertion failed! file %s, line %d.\n", tdate, file, + (void)afs_ctime(&when, tdate, sizeof(tdate)); + tdate[TIMESTAMP_NEWLINE_POS] = ' '; + fprintf(stderr, "%sAssertion failed! file %s, line %d.\n", tdate, file, line); fflush(stderr); #ifdef AFS_NT40_ENV -- 1.9.4