diff options
author | D G Turner | 2014-05-17 12:12:19 +0100 |
---|---|---|
committer | D G Turner | 2014-05-17 12:12:19 +0100 |
commit | 71aab5ab1df735bdcd776b05a5a180a3482a1345 (patch) | |
tree | e9bd8d70d07f2ac7bb08163a2511da376aa051eb /engines/hopkins/files.cpp | |
parent | 3ceaafd1f9f52d0156beeb579564071071d8e2a3 (diff) | |
download | scummvm-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/files.cpp')
-rw-r--r-- | engines/hopkins/files.cpp | 3 |
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; } |