Update of /cvsroot/vba/VisualBoyAdvance/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25053
Modified Files:
elf.cpp
Log Message:
Fix problems caused by memory leak fix
Index: elf.cpp
===================================================================
RCS file: /cvsroot/vba/VisualBoyAdvance/src/elf.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** elf.cpp 20 Jan 2004 00:46:11 -0000 1.12
--- elf.cpp 17 Feb 2004 11:03:50 -0000 1.13
***************
*** 244,247 ****
--- 244,248 ----
char *elfSectionHeadersStringTable = NULL;
int elfSectionHeadersCount = 0;
+ char *elfFileData = NULL;
CompileUnit *elfCompileUnits = NULL;
***************
*** 2801,2810 ****
fseek(f, 0, SEEK_END);
long size = ftell(f);
! u8 *filedata = (u8 *)malloc(size);
fseek(f, 0, SEEK_SET);
! fread(filedata, 1, size, f);
fclose(f);
! ELFHeader *header = (ELFHeader *)filedata;
if(READ32LE(&header->magic) != 0x464C457F ||
--- 2802,2811 ----
fseek(f, 0, SEEK_END);
long size = ftell(f);
! elfFileData = (u8 *)malloc(size);
fseek(f, 0, SEEK_SET);
! fread(elfFileData, 1, size, f);
fclose(f);
! ELFHeader *header = (ELFHeader *)elfFileData;
if(READ32LE(&header->magic) != 0x464C457F ||
***************
*** 2812,2825 ****
header->clazz != 1) {
systemMessage(0, "Not a valid ELF file %s", name);
! free(filedata);
return false;
}
! if(!elfReadProgram(header, filedata, siz, parseDebug)) {
! free(filedata);
return false;
}
- free(filedata);
- // systemMessage(0, "Done");
return true;
--- 2813,2826 ----
header->clazz != 1) {
systemMessage(0, "Not a valid ELF file %s", name);
! free(elfFileData);
! elfFileData = NULL;
return false;
}
! if(!elfReadProgram(header, elfFileData, siz, parseDebug)) {
! free(elfFileData);
! elfFileData = NULL;
return false;
}
return true;
***************
*** 2989,2991 ****
--- 2990,2997 ----
cie = next;
}
+
+ if(elfFileData) {
+ free(elfFileData);
+ elfFileData = NULL;
+ }
}
|