diff --git a/src/d_clisrv.c b/src/d_clisrv.c index c345d529082041cbcd1ff5fb236b296b74d5404a..36ced7f64e5a9cf9a7e6c0f71db8343189e32381 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -2297,6 +2297,7 @@ static boolean CL_ServerConnectionTicker(const char *tmpsave, tic_t *oldtic, tic case CL_LOADFILES: if (CL_LoadServerFiles()) { + FreeFileNeeded(); *asksent = 0; //This ensure the first join ask is right away firstconnectattempttime = I_GetTime(); cl_mode = CL_ASKJOIN; diff --git a/src/d_netfil.c b/src/d_netfil.c index 6e9130f14342c25fbf5055e5cc3c34f839129cb8..5168fff9ad1215df458f3ff7a9f3d431dd04cea8 100644 --- a/src/d_netfil.c +++ b/src/d_netfil.c @@ -189,6 +189,8 @@ void AllocFileNeeded(INT32 size) { if (fileneeded == NULL) fileneeded = Z_Calloc(sizeof(fileneeded_t) * size, PU_STATIC, NULL); + else + fileneeded = Z_Realloc(fileneeded, sizeof(fileneeded_t) * size, PU_STATIC, NULL); } void FreeFileNeeded(void) @@ -235,6 +237,7 @@ void CL_PrepareDownloadSaveGame(const char *tmpsave) lastfilenum = -1; #endif + FreeFileNeeded(); AllocFileNeeded(1); fileneedednum = 1; @@ -728,6 +731,7 @@ void CL_PrepareDownloadLuaFile(void) netbuffer->packettype = PT_ASKLUAFILE; HSendPacket(servernode, true, 0, 0); + FreeFileNeeded(); AllocFileNeeded(1); fileneedednum = 1;