Subject: bug#22149: 24.4; gdb stack overflow in regexp matcher

From: Eli Zaretskii <[email-masked]>
Date: Sat, 14 Mar 2020 12:14:24 +0200

> From: Mattias Engdegård <[email-masked]>
> Date: Sat, 14 Mar 2020 10:04:38 +0100
> Cc: Noam Postavsky <[email-masked]>, [email-masked],
>         Andreas Schwab <[email-masked]>, Cheng-An Yang <[email-masked]>
> 
> 14 mars 2020 kl. 08.58 skrev Eli Zaretskii <[email-masked]>:
> 
> >  Moreover, we
> > might decide, for different reasons, to bump up the stack size of the
> > Emacs binary, which will indirectly fix this problem by making it less
> > probable.
> 
> I'm not sure how the C and regexp engine stacks relate to each other in practice -- main() attempts to grow the C stack to accommodate the maximal regexp stack, but SAFE_ALLOCA is set up to use the heap when necessary. Surely we could decouple them more or less entirely, since the extra cost for malloc is bound to be small when a lot of regexp stack is needed.

I think regex-emacs.c already overrides some of the SAFE_ALLOCA
machinery to that effect, does it not?