elf: Fix use-after-free in ldconfig [BZ #26779]
[glibc.git] / stdio-common / tst-obprintf.c
blob51515932adbea6c1682630d204912dd19764af56
1 #include <mcheck.h>
2 #include <obstack.h>
3 #include <stdio.h>
4 #include <stdlib.h>
7 static int
8 do_test (void)
10 struct obstack ob;
11 int n;
13 mcheck_pedantic (NULL);
15 #define obstack_chunk_alloc malloc
16 #define obstack_chunk_free free
18 obstack_init (&ob);
20 for (n = 0; n < 40000; ++n)
22 mcheck_check_all ();
23 obstack_printf (&ob, "%.*s%05d", 1 + n % 7, "foobarbaz", n);
24 if (n % 777 == 0)
25 obstack_finish (&ob);
28 /* Another loop where we finish all objects, each of size 1. This will
29 manage to call `obstack_print' with all possible positions inside
30 an obstack chunk. */
31 for (n = 0; n < 40000; ++n)
33 mcheck_check_all ();
34 obstack_printf (&ob, "%c", 'a' + n % 26);
35 obstack_finish (&ob);
38 /* And a final check. */
39 mcheck_check_all ();
41 return 0;
44 #define TEST_FUNCTION do_test ()
45 #include "../test-skeleton.c"