chibi-scheme/include/chibi
Vitaliy Mysak 5726c2e490 Prevent stack overflow in sexp_mark_one (issue #601)
Replace explicit recursion by heap allocations
in sexp_mark_one code.
This prevents crashes caused by stack overflow.
In particular, fixes issue #601.

As an optimization, allocate a fixed sized stack buffer first,
which should be enough for "normal" uses.
When that stack overflows, switch to heap.

Also, store "ranges" on the stack, instead of the actual sexp's,
using the fact that sexp's of a single parent are continous in memory.

This patch doesn't remove recursion on the context saves
because it didn't seem like they overflow in practice.
But changing that is simple having the stack interface.
2020-05-15 20:11:50 +02:00
..
bignum.h adding initial support for SRFI 160 uniform vectors 2019-01-15 23:43:50 +08:00
eval.h fixing read-line on network ports 2019-05-04 13:18:27 +08:00
features.h Prevent stack overflow in sexp_mark_one (issue #601) 2020-05-15 20:11:50 +02:00
gc_heap.h Add C++ extern "C" to gc_heap.h 2018-10-04 10:49:30 +03:00
sexp-huff.h Added full support for packed images, both for static and dynamic libraries. 2016-02-15 21:12:58 -05:00
sexp-hufftabdefs.h Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
sexp-hufftabs.c Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
sexp-hufftabs.h Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
sexp-unhuff.h Forgot to install regexp (patch from Lorenzo) 2015-01-26 08:06:59 +09:00
sexp.h Prevent stack overflow in sexp_mark_one (issue #601) 2020-05-15 20:11:50 +02:00