Add UBFIX for null derefs in sub_8088950

This commit is contained in:
Sierraffinity 2020-12-26 17:39:24 -08:00
parent b155c307ea
commit 86fdd033c6

View File

@ -797,15 +797,33 @@ bool8 CameraMove(int x, int y)
struct MapConnection *sub_8088950(u8 direction, int x, int y)
{
int count;
struct MapConnection *connection;
int i;
count = gMapHeader.connections->count;
connection = gMapHeader.connections->connections;
struct MapConnection *connection;
const struct MapConnections *connections = gMapHeader.connections;
// UB: Multiple possible null dereferences
#ifdef UBFIX
if (connections != NULL)
{
count = connections->count;
connection = connections->connections;
if (connection != NULL)
{
for (i = 0; i < count; i++, connection++)
{
if (connection->direction == direction && sub_80889A8(direction, x, y, connection) == TRUE)
return connection;
}
}
}
#else
count = connections->count;
connection = connections->connections;
for (i = 0; i < count; i++, connection++)
{
if (connection->direction == direction && sub_80889A8(direction, x, y, connection) == TRUE)
return connection;
}
#endif
return NULL;
}