From d810bf6f7bd7946025532528ac3657b321cbdace Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 20 Jan 2000 02:02:40 +0000 Subject: [PATCH] Don't report an eror if final NUL is at the end of the buffer. Set errno correctly if floating-point number would overflow buffer. --- stdlib/strfmon.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/stdlib/strfmon.c b/stdlib/strfmon.c index 187e33fe37..b1a10bfb74 100644 --- a/stdlib/strfmon.c +++ b/stdlib/strfmon.c @@ -1,5 +1,5 @@ /* Formatting a monetary value according to the current locale. - Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper and Jochen Hein , 1996. @@ -464,7 +464,10 @@ __strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...) } if (s[maxsize - 1] != '\0') - return -1; + { + __set_errno (E2BIG); + return -1; + } dest += done; @@ -520,9 +523,9 @@ __strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...) } /* Terminate the string. */ - out_char ('\0'); + *dest = '\0'; va_end (ap); - return dest - s - 1; + return dest - s; }