From 0c26da90bb7538fb8bbf866013993185467b194b Mon Sep 17 00:00:00 2001 From: Dan Church Date: Tue, 2 Jan 2018 12:11:32 -0600 Subject: SCI32: Fix segfault when SCI3 vocab isn't found Seen when attempting to detect and/or run the Shivers 2 demo. Closes gh-1106. --- engines/sci/resource.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'engines') diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp index eb786bce03..78b641c9de 100644 --- a/engines/sci/resource.cpp +++ b/engines/sci/resource.cpp @@ -2918,6 +2918,9 @@ Common::String ResourceManager::findSierraGameId(const bool isBE) { heap = findResource(ResourceId(kResourceTypeScript, 0), false); Resource *vocab = findResource(ResourceId(kResourceTypeVocab, VOCAB_RESOURCE_SELECTORS), false); + if (!vocab) + return ""; + const uint16 numSelectors = isBE ? vocab->getUint16BEAt(0) : vocab->getUint16LEAt(0); for (uint16 i = 0; i < numSelectors; ++i) { uint16 selectorOffset; -- cgit v1.2.3