From 3a67c72c1512f778304a5644dea2fcf5bdece274 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Thu, 27 Sep 2018 12:37:06 +0200 Subject: [PATCH] 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 f841c97e515a1673485a2b12b3c280073d737890) --- ChangeLog | 6 ++++++ NEWS | 1 + stdlib/tst-setcontext9.c | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 84503e3a0c..4fbb9e2ad8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2018-09-27 Andreas Schwab + + [BZ #23717] + * stdlib/tst-setcontext9.c (f1a): Make st2 static. + (do_test): Make st1 static. + 2018-09-21 H.J. Lu Xuepeng Guo diff --git a/NEWS b/NEWS index d1f1dd4b22..bc568bcec0 100644 --- a/NEWS +++ b/NEWS @@ -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 diff --git a/stdlib/tst-setcontext9.c b/stdlib/tst-setcontext9.c index db8355766c..009928235d 100644 --- a/stdlib/tst-setcontext9.c +++ b/stdlib/tst-setcontext9.c @@ -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) {