From: Ulrich Drepper Date: Tue, 1 May 2007 18:35:44 +0000 (+0000) Subject: * stdio-common/test-vfprintf.c (main): Add test for large X-Git-Tag: cvs/fedora-glibc-20070504T0917~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1cb04337f2f373b5ebc6a83d254add05f850ebe1;p=thirdparty%2Fglibc.git * stdio-common/test-vfprintf.c (main): Add test for large precision. --- diff --git a/ChangeLog b/ChangeLog index 6ba3a12edb4..d558dede4ec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,8 @@ [BZ #4438] * stdio-common/vfprintf.c (process_string_arg): Don't overflow the stack for large precisions. + * stdio-common/test-vfprintf.c (main): Add test for large + precision. 2007-04-30 Jakub Jelinek diff --git a/stdio-common/test-vfprintf.c b/stdio-common/test-vfprintf.c index a683eac779e..342ac471dab 100644 --- a/stdio-common/test-vfprintf.c +++ b/stdio-common/test-vfprintf.c @@ -1,5 +1,5 @@ /* Tests of *printf for very large strings. - Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2003, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2000. @@ -94,6 +94,7 @@ main (void) fprintf (fp, "%.*s", 30000, large); large[20000] = '\0'; fprintf (fp, large); + fprintf (fp, "%-1.300000000s", "hello"); if (fflush (fp) != 0 || ferror (fp) != 0 || fclose (fp) != 0) { @@ -108,11 +109,12 @@ main (void) setlocale (LC_ALL, NULL)); exit (1); } - else if (st.st_size != 99999) + else if (st.st_size != 50000 + 30000 + 19999 + 5) { printf ("file size incorrect for locale %s: %jd instead of %jd\n", setlocale (LC_ALL, NULL), - (intmax_t) st.st_size, (intmax_t) 99999); + (intmax_t) st.st_size, + (intmax_t) 50000 + 30000 + 19999 + 5); res = 1; } else