Fix stack overflow in tst-setcontext9 (bug 23717)

The function f1a, executed on a stack of size 32k, allocates an object of
size 32k on the stack.  Make the stack variables static to reduce
excessive stack usage.

(cherry picked from commit f841c97e51)
This commit is contained in:
Andreas Schwab 2018-09-27 12:37:06 +02:00 committed by Florian Weimer
parent 2339d6a55e
commit 3a67c72c15
3 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2018-09-27 Andreas Schwab <schwab@suse.de>
[BZ #23717]
* stdlib/tst-setcontext9.c (f1a): Make st2 static.
(do_test): Make st1 static.
2018-09-21 H.J. Lu <hongjiu.lu@intel.com>
Xuepeng Guo <xuepeng.guo@intel.com>

1
NEWS
View File

@ -15,6 +15,7 @@ The following bugs are resolved with this release:
[23578] regex: Fix memory overread in re_compile_pattern
[23606] Missing ENDBR32 in sysdeps/i386/start.S
[23679] gethostid: Missing NULL check for gethostbyname_r result
[23717] Fix stack overflow in stdlib/tst-setcontext9
Version 2.28

View File

@ -58,7 +58,7 @@ f1b (void)
static void
f1a (void)
{
char st2[32768];
static char st2[32768];
puts ("start f1a");
if (getcontext (&ctx[2]) != 0)
{
@ -93,7 +93,7 @@ f1a (void)
static int
do_test (void)
{
char st1[32768];
static char st1[32768];
puts ("making contexts");
if (getcontext (&ctx[0]) != 0)
{