aboutsummaryrefslogtreecommitdiffstats
path: root/stdio-common/bug29.c
diff options
context:
space:
mode:
authorCarlos O'Donell <carlos@redhat.com>2023-05-17 09:33:05 -0400
committerCarlos O'Donell <carlos@redhat.com>2023-05-18 12:34:00 -0400
commitb9125aeaed45e10ce329f91f007eb3da43d2155f (patch)
tree4e88e03563e0cf0177aaebbbd64d74b11b44713f /stdio-common/bug29.c
parentelf: Adjust tests in Makefile. (diff)
downloadglibc-b9125aeaed45e10ce329f91f007eb3da43d2155f.tar.xz
glibc-b9125aeaed45e10ce329f91f007eb3da43d2155f.zip
stdio-common: Adjust tests in Makefile
Sort tests against updated scripts/sort-makefile-lines.py. No changes in generated code. No regressions on x86_64 and i686. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Diffstat (limited to 'stdio-common/bug29.c')
-rw-r--r--stdio-common/bug29.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/stdio-common/bug29.c b/stdio-common/bug29.c
new file mode 100644
index 0000000000..a4785640de
--- /dev/null
+++ b/stdio-common/bug29.c
@@ -0,0 +1,31 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/resource.h>
+
+#define LIMIT 1000000
+
+int
+main (void)
+{
+ struct rlimit lim;
+ getrlimit (RLIMIT_STACK, &lim);
+ lim.rlim_cur = 1048576;
+ setrlimit (RLIMIT_STACK, &lim);
+ char *fmtstr = malloc (4 * LIMIT + 1);
+ if (fmtstr == NULL)
+ abort ();
+ char *output = malloc (LIMIT + 1);
+ if (output == NULL)
+ abort ();
+ for (size_t i = 0; i < LIMIT; i++)
+ memcpy (fmtstr + 4 * i, "%1$d", 4);
+ fmtstr[4 * LIMIT] = '\0';
+ int ret = snprintf (output, LIMIT + 1, fmtstr, 0);
+ if (ret != LIMIT)
+ abort ();
+ for (size_t i = 0; i < LIMIT; i++)
+ if (output[i] != '0')
+ abort ();
+ return 0;
+}