Skip to content

Commit 5feeccd

Browse files
author
White Dragon
committed
fixed a heavy bug on malloc structure
1 parent fd702cb commit 5feeccd

4 files changed

Lines changed: 12 additions & 12 deletions

File tree

engine/psp/menu.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -246,11 +246,11 @@ static int findPaks(void)
246246
if(filelist == NULL) filelist = malloc(sizeof(fileliststruct));
247247
else
248248
{
249-
copy = malloc(i * sizeof(fileliststruct));
250-
memcpy(copy, filelist, i * sizeof(fileliststruct));
249+
copy = malloc((i + 1) * sizeof(fileliststruct));
250+
memcpy(copy, filelist, (i + 1) * sizeof(fileliststruct));
251251
free(filelist);
252252
filelist = malloc((i + 1) * sizeof(fileliststruct));
253-
memcpy(filelist, copy, i * sizeof(fileliststruct));
253+
memcpy(filelist, copy, (i + 1) * sizeof(fileliststruct));
254254
free(copy); copy = NULL;
255255
}
256256
memset(&filelist[i], 0, sizeof(fileliststruct));

engine/sdl/menu.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,11 +185,11 @@ static int findPaks(void)
185185
if(filelist == NULL) filelist = malloc(sizeof(fileliststruct));
186186
else
187187
{
188-
copy = malloc(i * sizeof(fileliststruct));
189-
memcpy(copy, filelist, i * sizeof(fileliststruct));
188+
copy = malloc((i + 1) * sizeof(fileliststruct));
189+
memcpy(copy, filelist, (i + 1) * sizeof(fileliststruct));
190190
free(filelist);
191191
filelist = malloc((i + 1) * sizeof(fileliststruct));
192-
memcpy(filelist, copy, i * sizeof(fileliststruct));
192+
memcpy(filelist, copy, (i + 1) * sizeof(fileliststruct));
193193
free(copy); copy = NULL;
194194
}
195195
memset(&filelist[i], 0, sizeof(fileliststruct));

engine/vita/menu.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,11 +188,11 @@ static int findPaks(void)
188188
if (filelist == NULL) filelist = malloc(sizeof(fileliststruct));
189189
else
190190
{
191-
copy = malloc(i * sizeof(fileliststruct));
192-
memcpy(copy, filelist, i * sizeof(fileliststruct));
191+
copy = malloc((i + 1) * sizeof(fileliststruct));
192+
memcpy(copy, filelist, (i + 1) * sizeof(fileliststruct));
193193
free(filelist);
194194
filelist = malloc((i + 1) * sizeof(fileliststruct));
195-
memcpy(filelist, copy, i * sizeof(fileliststruct));
195+
memcpy(filelist, copy, (i + 1) * sizeof(fileliststruct));
196196
free(copy); copy = NULL;
197197
}
198198
memset(&filelist[i], 0, sizeof(fileliststruct));

engine/wii/menu.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -317,11 +317,11 @@ static int findPaks(void)
317317
if(filelist == NULL) filelist = malloc(sizeof(fileliststruct));
318318
else
319319
{
320-
copy = malloc(i * sizeof(fileliststruct));
321-
memcpy(copy, filelist, i * sizeof(fileliststruct));
320+
copy = malloc((i + 1) * sizeof(fileliststruct));
321+
memcpy(copy, filelist, (i + 1) * sizeof(fileliststruct));
322322
free(filelist);
323323
filelist = malloc((i + 1) * sizeof(fileliststruct));
324-
memcpy(filelist, copy, i * sizeof(fileliststruct));
324+
memcpy(filelist, copy, (i + 1) * sizeof(fileliststruct));
325325
free(copy); copy = NULL;
326326
}
327327
memset(&filelist[i], 0, sizeof(fileliststruct));

0 commit comments

Comments
 (0)