aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine/scriptdebug.cpp
diff options
context:
space:
mode:
authorColin Snover2017-01-05 21:05:22 -0600
committerColin Snover2017-02-05 12:38:21 -0600
commit10d97ce37947362e6fa7161cd85221f59ca49490 (patch)
tree096af451474abe5ab3f65e61016a0ff2d413608c /engines/sci/engine/scriptdebug.cpp
parentb1c3332fddbb16838f1a654d6fe35ddbe09bd051 (diff)
downloadscummvm-rg350-10d97ce37947362e6fa7161cd85221f59ca49490.tar.gz
scummvm-rg350-10d97ce37947362e6fa7161cd85221f59ca49490.tar.bz2
scummvm-rg350-10d97ce37947362e6fa7161cd85221f59ca49490.zip
SCI: Fix more unsafe C-string usage
Diffstat (limited to 'engines/sci/engine/scriptdebug.cpp')
-rw-r--r--engines/sci/engine/scriptdebug.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/engines/sci/engine/scriptdebug.cpp b/engines/sci/engine/scriptdebug.cpp
index 54b925a1b6..6002cbd8e4 100644
--- a/engines/sci/engine/scriptdebug.cpp
+++ b/engines/sci/engine/scriptdebug.cpp
@@ -598,8 +598,12 @@ void Kernel::dissectScript(int scriptNumber, Vocabulary *vocab) {
case SCI_OBJ_STRINGS:
debugN("Strings\n");
while (script->data [seeker]) {
- debugN("%04x: %s\n", seeker, script->data + seeker);
- seeker += strlen((char *)script->data + seeker) + 1;
+ debugN("%04x: %s", seeker, script->data + seeker);
+ seeker += Common::strnlen((char *)script->data + seeker, script->size - seeker) + 1;
+ if (seeker > script->size) {
+ debugN("[TRUNCATED]");
+ }
+ debugN("\n");
}
seeker++; // the ending zero byte
break;