(svn r6884) -Codechange: Add strict bounds checking in string formatting system.

The last parameter should point to the end of the buffer (eg lastof(buf))
 Courtesy of Tron.
This commit is contained in:
Darkvater
2006-10-21 23:31:34 +00:00
parent 7f36a980c7
commit ee27bb497c
33 changed files with 240 additions and 231 deletions

View File

@@ -378,7 +378,7 @@ static int CDECL TownNameSorter(const void *a, const void *b)
int r;
SetDParam(0, ta->index);
GetString(buf1, STR_TOWN);
GetString(buf1, STR_TOWN, lastof(buf1));
/* If 'b' is the same town as in the last round, use the cached value
* We do this to speed stuff up ('b' is called with the same value a lot of
@@ -386,7 +386,7 @@ static int CDECL TownNameSorter(const void *a, const void *b)
if (tb != _last_town) {
_last_town = tb;
SetDParam(0, tb->index);
GetString(_bufcache, STR_TOWN);
GetString(_bufcache, STR_TOWN, lastof(_bufcache));
}
r = strcmp(buf1, _bufcache);