diff options
Diffstat (limited to '')
-rw-r--r-- | data.cpp | 4 | ||||
-rw-r--r-- | infomanager.cpp | 4 |
2 files changed, 6 insertions, 2 deletions
@@ -274,16 +274,18 @@ int DataManager::LoadValues(const string filename) string Name; string Value; unsigned short length; - char array[512]; + char array[513]; if (fread(&length, 1, sizeof(unsigned short), in) != sizeof(unsigned short)) goto error; if (length >= 512) goto error; if (fread(array, 1, length, in) != length) goto error; + array[length+1] = '\0'; Name = array; if (fread(&length, 1, sizeof(unsigned short), in) != sizeof(unsigned short)) goto error; if (length >= 512) goto error; if (fread(array, 1, length, in) != length) goto error; + array[length+1] = '\0'; Value = array; map<string, TStrIntPair>::iterator pos; diff --git a/infomanager.cpp b/infomanager.cpp index 864c431a5..2a4c3c892 100644 --- a/infomanager.cpp +++ b/infomanager.cpp @@ -67,16 +67,18 @@ int InfoManager::LoadValues(void) { string Name; string Value; unsigned short length; - char array[512]; + char array[513]; if (fread(&length, 1, sizeof(unsigned short), in) != sizeof(unsigned short)) goto error; if (length >= 512) goto error; if (fread(array, 1, length, in) != length) goto error; + array[length+1] = '\0'; Name = array; if (fread(&length, 1, sizeof(unsigned short), in) != sizeof(unsigned short)) goto error; if (length >= 512) goto error; if (fread(array, 1, length, in) != length) goto error; + array[length+1] = '\0'; Value = array; map<string, string>::iterator pos; |