(Cthulhu88) Fix for multi-char arrays

This commit is contained in:
twinaphex 2021-11-11 05:38:45 +01:00
parent 393f9bdd48
commit e64cd24715
2 changed files with 11 additions and 3 deletions

View File

@ -191,7 +191,7 @@ struct netplay_host_list
struct netplay_mitm_pending
{
int *fds;
uint8_t *ids[NETPLAY_MITM_ID_SIZE];
uint8_t *ids[NETPLAY_MITM_MAX_PENDING];
retro_time_t *timeouts;
int current;

View File

@ -5832,11 +5832,15 @@ static int init_tcp_connection(const struct addrinfo *res,
if (fds && ids && timeouts)
{
size_t i;
memset(fds, -1,
NETPLAY_MITM_MAX_PENDING * sizeof(*fds));
for (i = 0; i < NETPLAY_MITM_MAX_PENDING; i++, ids += NETPLAY_MITM_ID_SIZE)
net_st->mitm_pending.ids[i] = ids;
net_st->mitm_pending.fds = fds;
net_st->mitm_pending.ids = ids;
net_st->mitm_pending.timeouts = timeouts;
net_st->mitm_pending.current = 0;
@ -7600,7 +7604,11 @@ void deinit_netplay(void)
net_st->mitm_pending.fds = NULL;
}
if (net_st->mitm_pending.ids)
free(*net_st->mitm_pending.ids);
{
free(net_st->mitm_pending.ids[0]);
memset(net_st->mitm_pending.ids, 0,
sizeof(net_st->mitm_pending.ids));
}
if (net_st->mitm_pending.timeouts)
{
free(net_st->mitm_pending.timeouts);