From e37cd8f9f44b07a8ab683d9346ab80dec0da1a93 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Wed, 27 Aug 2003 08:55:01 +0000 Subject: [PATCH] (print_it): Avoid buffer overrun that would occur when the user-specified format string ends with `%'. --- src/stat.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/stat.c b/src/stat.c index 0bcb1f19a4..8b98816539 100644 --- a/src/stat.c +++ b/src/stat.c @@ -566,7 +566,6 @@ print_it (char const *masterformat, char const *filename, char *dest = xmalloc (strlen (format) + 1); - b = format; while (b) { @@ -583,9 +582,12 @@ print_it (char const *masterformat, char const *filename, dest[1 + len] = 0; p += len; + b = p + 1; switch (*p) { case '\0': + b = NULL; + /* fall through */ case '%': putchar ('%'); break; @@ -593,7 +595,6 @@ print_it (char const *masterformat, char const *filename, print_func (dest, *p, filename, data); break; } - b = p + 1; } else { -- 2.47.2