Skip to content

Commit

Permalink
client: Fix memory leaks
Browse files Browse the repository at this point in the history
  • Loading branch information
0lvin committed Aug 27, 2024
1 parent 33ebf6c commit b3efe33
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 9 deletions.
42 changes: 33 additions & 9 deletions src/client/menu/menu.c
Original file line number Diff line number Diff line change
Expand Up @@ -5712,10 +5712,18 @@ HasSkinsInDir(const char *dirname, int *num)

for (j = 0; j < num_png; j ++)
{
if (list_png[j] && !strchr(list_png[j] + dirname_size, '/'))
if (list_png[j])
{
*curr = list_png[j];
curr++;
if (!strchr(list_png[j] + dirname_size, '/'))
{
*curr = list_png[j];
curr++;
}
else
{
/* unused in final response */
free(list_png[j]);
}
}
}

Expand All @@ -5728,10 +5736,18 @@ HasSkinsInDir(const char *dirname, int *num)

for (j = 0; j < num_pcx; j ++)
{
if (list_pcx[j] && !strchr(list_pcx[j] + dirname_size, '/'))
if (list_pcx[j])
{
*curr = list_pcx[j];
curr++;
if (!strchr(list_pcx[j] + dirname_size, '/'))
{
*curr = list_pcx[j];
curr++;
}
else
{
/* unused in final response */
free(list_pcx[j]);
}
}
}

Expand All @@ -5744,10 +5760,18 @@ HasSkinsInDir(const char *dirname, int *num)

for (j = 0; j < num_m8; j ++)
{
if (list_m8[j] && !strchr(list_m8[j] + dirname_size, '/'))
if (list_m8[j])
{
*curr = list_m8[j];
curr++;
if (!strchr(list_m8[j] + dirname_size, '/'))
{
*curr = list_m8[j];
curr++;
}
else
{
/* unused in final response */
free(list_m8[j]);
}
}
}

Expand Down
6 changes: 6 additions & 0 deletions src/common/filesystem.c
Original file line number Diff line number Diff line change
Expand Up @@ -880,6 +880,12 @@ FS_LoadFile(const char *path, void **buffer)

if (size <= 0)
{
if (size == 0)
{
/* empty file, close before exit*/
FS_FCloseFile(f);
}

if (buffer)
{
*buffer = NULL;
Expand Down
6 changes: 6 additions & 0 deletions src/common/models.c
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,12 @@ Mod_LoadFileMD5Merge(const char *namewe, void **buffer)
i, md5skinname);
}
}

/* clean up original buffer */
if (skins)
{
free(skins);
}
}

/* prepare final file */
Expand Down

0 comments on commit b3efe33

Please sign in to comment.