From: Ulrich Drepper Date: Thu, 20 Jan 2000 02:02:40 +0000 (+0000) Subject: Don't report an eror if final NUL is at the end of the buffer. Set errno X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d810bf6f7bd7946025532528ac3657b321cbdace;p=thirdparty%2Fglibc.git 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. --- diff --git a/stdlib/strfmon.c b/stdlib/strfmon.c index 187e33fe379..b1a10bfb74e 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; }