From: <for...@us...> - 2004-02-17 11:12:37
|
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; + } } |