summaryrefslogtreecommitdiff
path: root/src/3rdparty/squirrel
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2012-02-17 21:49:53 +0000
committerrubidium <rubidium@openttd.org>2012-02-17 21:49:53 +0000
commit703ef5b7b68aafd527d319901e3f41f1b9f85d55 (patch)
tree292b9996f336ad9cd912bddc101ea8a38b243d14 /src/3rdparty/squirrel
parent0ba47deca161456f2145b30deca013c0e82fd011 (diff)
downloadopenttd-703ef5b7b68aafd527d319901e3f41f1b9f85d55.tar.xz
(svn r23962) -Fix [FS#5068]: [Script] Infinite recursion within a script wasn't caught properly, so they could cause crashes of OpenTTD instead of the AI
Diffstat (limited to 'src/3rdparty/squirrel')
-rw-r--r--src/3rdparty/squirrel/squirrel/sqvm.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/3rdparty/squirrel/squirrel/sqvm.h b/src/3rdparty/squirrel/squirrel/sqvm.h
index 73b5a0451..4b922c370 100644
--- a/src/3rdparty/squirrel/squirrel/sqvm.h
+++ b/src/3rdparty/squirrel/squirrel/sqvm.h
@@ -200,6 +200,10 @@ inline SQObjectPtr &stack_get(HSQUIRRELVM v,SQInteger idx){return ((idx>=0)?(v->
#define PUSH_CALLINFO(v,nci){ \
if(v->_callsstacksize == v->_alloccallsstacksize) { \
+ if (v->_callsstacksize > 65535) {\
+ v->Raise_Error(_SC("stack overflow"));\
+ return false;\
+ }\
v->GrowCallStack(); \
} \
v->ci = &v->_callsstack[v->_callsstacksize]; \