[Date Prev][Date Next] [Chronological] [Thread] [Top]

BDB: Stack blow out

I'd really like for BDB to support every large IDLs,
but stack blow out is a problem even with relatively
small IDLs (depending on thread stack size).

One thought I have is actually using alloca(), where
reliable(*), to avoid stack crashes.  alloca() actually
returns an error which the caller can handle.  There
are a couple of ways the error could be handled,
namely return an ALLIDS IDL or switch to malloc().

Also, if a reliable alloca() wasn't available, the
code would just use malloc().

I've also been thinking of putting in some depth
limits and early escape code (e.g. stop trying to
make very small IDLs smaller).

Thoughts?  Comments?  Code?


* GCC builtin + a few select implementations