[Python-Dev] Defending against stack overflow (was Sandboxing Python)
"Martin v. Löwis"
martin at v.loewis.de
Sun Mar 4 21:35:36 CET 2012
> So, how to handle stack overflows (of the C stack)?
> To prevent a stack overflow an exception must be raised before
> the VM runs out C stack. To do this we need 2 pieces of info:
> a) How much stack we've used
> b) How much stack is available.
Python has already dedicated counters for stack depth, which just need
proper updating and conservative values. I also think that we need to
avoid allocating large arrays on the stack in recursive functions, and
always heap-allocate such memory, to be stack-conservative.
> I think it is a reasonable aim for 3.3 that Lib/test/crashers
> should be empty.
I agree. If you have patches to review, just put me on the nosy list.
More information about the Python-Dev