aboutsummaryrefslogtreecommitdiff
path: root/engines/hopkins
diff options
context:
space:
mode:
authorD G Turner2014-05-17 12:12:19 +0100
committerD G Turner2014-05-17 12:12:19 +0100
commit71aab5ab1df735bdcd776b05a5a180a3482a1345 (patch)
treee9bd8d70d07f2ac7bb08163a2511da376aa051eb /engines/hopkins
parent3ceaafd1f9f52d0156beeb579564071071d8e2a3 (diff)
downloadscummvm-rg350-71aab5ab1df735bdcd776b05a5a180a3482a1345.tar.gz
scummvm-rg350-71aab5ab1df735bdcd776b05a5a180a3482a1345.tar.bz2
scummvm-rg350-71aab5ab1df735bdcd776b05a5a180a3482a1345.zip
HOPKINS: Add null termination to byte buffer returned by loadFile().
This shouldn't be a problem, as current client code either must find a terminator when parsing the byte buffer or have preknowledge of the buffer size from a file size or fixed call, so the appended null termination will not cause issues. This change thus allows client code to add sanity checks to prevent reading off the end of the buffer.
Diffstat (limited to 'engines/hopkins')
-rw-r--r--engines/hopkins/files.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/engines/hopkins/files.cpp b/engines/hopkins/files.cpp
index 75f429f860..6620f2878c 100644
--- a/engines/hopkins/files.cpp
+++ b/engines/hopkins/files.cpp
@@ -51,12 +51,13 @@ byte *FileManager::loadFile(const Common::String &file) {
// Allocate space for the file contents
size_t filesize = f.size();
- byte *data = _vm->_globals->allocMemory(filesize);
+ byte *data = _vm->_globals->allocMemory(filesize+1);
if (!data)
error("Error allocating space for file being loaded - %s", file.c_str());
readStream(f, data, filesize);
f.close();
+ data[filesize] = '\0';
return data;
}