aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/kernel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/engine/kernel.cpp')
-rw-r--r--engines/sci/engine/kernel.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp
index 7b6a9a7660..31d5dc722c 100644
--- a/engines/sci/engine/kernel.cpp
+++ b/engines/sci/engine/kernel.cpp
@@ -141,8 +141,8 @@ SciKernelFunction kfunct_mappers[] = {
/*47*/ DEFUN("StrEnd", kStrEnd, "r"),
/*48*/ DEFUN("StrCat", kStrCat, "rr"),
/*49*/ DEFUN("StrCmp", kStrCmp, "rri*"),
- /*4a*/ DEFUN("StrLen", kStrLen, "r"),
- /*4b*/ DEFUN("StrCpy", kStrCpy, "rri*"),
+ /*4a*/ DEFUN("StrLen", kStrLen, "Zr"),
+ /*4b*/ DEFUN("StrCpy", kStrCpy, "rZri*"),
/*4c*/ DEFUN("Format", kFormat, "r.*"),
/*4d*/ DEFUN("GetFarText", kGetFarText, "iir"),
/*4e*/ DEFUN("ReadNumber", kReadNumber, "r"),
@@ -923,6 +923,9 @@ static void *_kernel_dereference_pointer(EngineState *s, reg_t pointer, int entr
int maxsize;
void *retval = s->seg_manager->dereference(pointer, &maxsize);
+ if (!retval)
+ return NULL;
+
if (pointer.offset & (align - 1)) {
warning("Unaligned pointer read: %04x:%04x expected with %d alignment", PRINT_REG(pointer), align);
return NULL;