aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2009-09-27 13:05:50 +0000
committerWillem Jan Palenstijn2009-09-27 13:05:50 +0000
commit08e4d96a7d044cca5075b00ee82faa3babaa477a (patch)
treeaaf6f5e8ae5cc6c22a0c155b8d498d60476d552c
parent77751a04556547fc65f5b7cb7e007644e2f470fc (diff)
downloadscummvm-rg350-08e4d96a7d044cca5075b00ee82faa3babaa477a.tar.gz
scummvm-rg350-08e4d96a7d044cca5075b00ee82faa3babaa477a.tar.bz2
scummvm-rg350-08e4d96a7d044cca5075b00ee82faa3babaa477a.zip
SCI: clear strcpy's dest string if src is invalid.
This fixes moving the plank at the start of KQ6 in Text mode. svn-id: r44397
-rw-r--r--engines/sci/engine/seg_manager.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/engines/sci/engine/seg_manager.cpp b/engines/sci/engine/seg_manager.cpp
index 5d81d8ef35..cb8900ec09 100644
--- a/engines/sci/engine/seg_manager.cpp
+++ b/engines/sci/engine/seg_manager.cpp
@@ -912,6 +912,10 @@ void SegManager::strncpy(reg_t dest, reg_t src, size_t n) {
const SegmentRef src_r = dereference(src);
if (!src_r.isValid()) {
warning("Attempt to strncpy from invalid pointer %04x:%04x", PRINT_REG(src));
+
+ // Clear target string instead.
+ if (n > 0)
+ strcpy(dest, "");
return;
}