From 5228aa29fa632249c835f98fbc4cfc01fa5f222b Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Fri, 8 Sep 2017 20:01:43 -0500 Subject: SCI32: Fix crash when changing security level of dead people in Phant2 In the original interpreter, is it valid to pass a null reference to both kArray(GetData) (it just acts as an identity function when the passed argument is not an object) and to kString functions (it always dereferences to an empty string). Fixes Trac#10039. --- engines/sci/engine/kernel_tables.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'engines/sci/engine/kernel_tables.h') diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h index ac932199d3..f4f96ad253 100644 --- a/engines/sci/engine/kernel_tables.h +++ b/engines/sci/engine/kernel_tables.h @@ -521,7 +521,7 @@ static const SciKernelMapSubEntry kArray_subops[] = { { SIG_SCI32, 6, MAP_CALL(ArrayCopy), "ririi", NULL }, // there is no subop 7 { SIG_SCI32, 8, MAP_CALL(ArrayDuplicate), "r", NULL }, - { SIG_SCI32, 9, MAP_CALL(ArrayGetData), "[or]", NULL }, + { SIG_SCI32, 9, MAP_CALL(ArrayGetData), "[0or]", NULL }, { SIG_SCI3, 10, MAP_CALL(ArrayByteCopy), "ririi", NULL }, SCI_SUBOPENTRY_TERMINATOR }; @@ -553,8 +553,8 @@ static const SciKernelMapSubEntry kString_subops[] = { { SIG_THRU_SCI21MID, 18, MAP_CALL(StringReplaceSubstringEx), "rrrr", NULL }, { SIG_SINCE_SCI21LATE, 8, MAP_CALL(StringLength), "r", NULL }, - { SIG_SINCE_SCI21LATE, 9, MAP_CALL(StringFormat), "[ro](.*)", NULL }, - { SIG_SINCE_SCI21LATE,10, MAP_CALL(StringFormatAt), "r[ro](.*)", NULL }, + { SIG_SINCE_SCI21LATE, 9, MAP_CALL(StringFormat), "[0ro](.*)", NULL }, + { SIG_SINCE_SCI21LATE,10, MAP_CALL(StringFormatAt), "r[0ro](.*)", NULL }, { SIG_SINCE_SCI21LATE,11, MAP_CALL(StringToInteger), "r", NULL }, { SIG_SINCE_SCI21LATE,12, MAP_CALL(StringTrim), "ri(i)", NULL }, { SIG_SINCE_SCI21LATE,13, MAP_CALL(StringToUpperCase), "r", NULL }, -- cgit v1.2.3