From 6ea6cff922977816ab6e9b2b919612bd44acce88 Mon Sep 17 00:00:00 2001 From: TobiasBohnen <1294616+TobiasBohnen@users.noreply.github.com> Date: Thu, 13 Apr 2023 22:41:04 +0200 Subject: [PATCH] fixed sq_resume sq_resume crashes (ci is null) when called on a dead generator. --- squirrel/sqvm.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/squirrel/sqvm.cpp b/squirrel/sqvm.cpp index 051b94f..489a0b4 100644 --- a/squirrel/sqvm.cpp +++ b/squirrel/sqvm.cpp @@ -715,7 +715,13 @@ bool SQVM::Execute(SQObjectPtr &closure, SQInteger nargs, SQInteger stackbase,SQ ci->_root = SQTrue; } break; - case ET_RESUME_GENERATOR: _generator(closure)->Resume(this, outres); ci->_root = SQTrue; traps += ci->_etraps; break; + case ET_RESUME_GENERATOR: + if(!_generator(closure)->Resume(this, outres)) { + return false; + } + ci->_root = SQTrue; + traps += ci->_etraps; + break; case ET_RESUME_VM: case ET_RESUME_THROW_VM: traps = _suspended_traps;