From: Jim Meyering Date: Mon, 18 Aug 1997 19:50:35 +0000 (+0000) Subject: (show_date): Don't hang if strftime produces an empty string. X-Git-Tag: SH-UTILS-1_16d~1 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=b5ef7a4be75e46cd44eb2f3cfa2512a84026ce98;p=thirdparty%2Fcoreutils.git (show_date): Don't hang if strftime produces an empty string. --- diff --git a/src/date.c b/src/date.c index 36bc01febc..591264e5c8 100644 --- a/src/date.c +++ b/src/date.c @@ -399,8 +399,14 @@ show_date (const char *format, time_t when) { out_length += 200; out = (char *) xrealloc (out, out_length); + + /* Mark the first byte of the buffer so we can detect the case + of strftime producing an empty string. Otherwise, this loop + would not terminate when date was invoked like this + `LANG=de date +%p' on a system with good language support. */ + out[0] = '\1'; } - while (strftime (out, out_length, format, tm) == 0); + while (strftime (out, out_length, format, tm) == 0 && out[0] != '\0'); printf ("%s\n", out); free (out);