Fixed off-by-one buffer overrun in map_allow_copy() function which would lead to malformed initialization network packets. Added address sanitizer in db CMake.

This commit is contained in:
2022-11-27 01:10:23 +02:00
parent c8abacafaf
commit b5ea548038
3 changed files with 9 additions and 8 deletions

View File

@ -169,18 +169,16 @@ void map_allow_add(int index)
s_set_map_allows.insert(index);
}
void map_allow_copy(LONG * pl, int size)
void map_allow_copy(int * pl, int size)
{
int iCount = 0;
std::set<int>::iterator it = s_set_map_allows.begin();
while (it != s_set_map_allows.end())
for (auto mapId: s_set_map_allows)
{
int i = *(it++);
*(pl++) = i;
if (iCount >= size)
break;
if (++iCount > size)
break;
pl[iCount++] = mapId;
}
}

View File

@ -37,7 +37,7 @@ extern bool g_bTrafficProfileOn; ///< true
extern BYTE g_bChannel;
extern bool map_allow_find(int index);
extern void map_allow_copy(LONG * pl, int size);
extern void map_allow_copy(int * pl, int size);
extern bool no_wander;
extern int g_iUserLimit;