diff --git a/module/lua/llimits.h b/module/lua/llimits.h index 177092fbc2..25466f14ed 100644 --- a/module/lua/llimits.h +++ b/module/lua/llimits.h @@ -126,7 +126,16 @@ typedef LUAI_UACNUMBER l_uacNumber; * Minimum amount of available stack space (in bytes) to make a C call. With * gsub() recursion, the stack space between each luaD_call() is 1256 bytes. */ +#if defined(__FreeBSD__) +/* + * FreeBSD needs a few extra bytes in unoptimized debug builds to avoid a + * double-fault handling the error when the max call depth is exceeded just + * before the C stack runs out. 64 bytes seems to do the trick. + */ +#define LUAI_MINCSTACK 4160 +#else #define LUAI_MINCSTACK 4096 +#endif /* ** maximum number of upvalues in a closure (both C and Lua). (Value