From 2f9f488b1e809197ad901fc4e1fbd4e8fb40441d Mon Sep 17 00:00:00 2001 From: Zvika Date: Mon, 3 Feb 2020 09:08:01 +0200 Subject: [PATCH] SCI: fix segfault upon detection of pirated game, without fallback --- engines/sci/resource.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp index 3e1f520fd97..5635efb9950 100644 --- a/engines/sci/resource.cpp +++ b/engines/sci/resource.cpp @@ -420,7 +420,9 @@ void ResourceManager::disposeVolumeFileStream(Common::SeekableReadStream *fileSt void ResourceManager::loadResource(Resource *res) { res->_source->loadResource(this, res); - _patcher->applyPatch(*res); + if (_patcher) { + _patcher->applyPatch(*res); + }; } @@ -980,8 +982,12 @@ void ResourceManager::init() { #ifdef ENABLE_SCI32 _currentDiscNo = 1; #endif - _patcher = new ResourcePatcher(g_sci->getGameId(), g_sci->getLanguage()); - addSource(_patcher); + if (g_sci) { + _patcher = new ResourcePatcher(g_sci->getGameId(), g_sci->getLanguage()); + addSource(_patcher); + } else { + _patcher = NULL; + }; // FIXME: put this in an Init() function, so that we can error out if detection fails completely