Skip to content

Commit

Permalink
* stdio-common/test-vfprintf.c (main): Add test for large
Browse files Browse the repository at this point in the history
	precision.
  • Loading branch information
Ulrich Drepper committed May 1, 2007
1 parent c01c245 commit 1cb0433
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
2 changes: 2 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -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 <jakub@redhat.com>

Expand Down
8 changes: 5 additions & 3 deletions stdio-common/test-vfprintf.c
Original file line number Diff line number Diff line change
@@ -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 <drepper@redhat.com>, 2000.
Expand Down Expand Up @@ -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)
{
Expand All @@ -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
Expand Down

0 comments on commit 1cb0433

Please sign in to comment.