continue;\r
if( phtab[i].VAddr < base )\r
base = phtab[i].VAddr;\r
- if( phtab[i].VAddr > max )\r
- max = phtab[i].VAddr;\r
+ if( phtab[i].VAddr + phtab[i].MemSize > max )\r
+ max = phtab[i].VAddr + phtab[i].MemSize;\r
}\r
\r
LOG("base = %08x, max = %08x\n", base, max);\r
\r
hdr->entrypoint += iBaseDiff;\r
\r
+ hdr->misc.SymTable = 0;\r
+ hdr->misc.HashTable = 0;\r
+ \r
// === Get Symbol table and String Table ===\r
for( j = 0; dynamicTab[j].d_tag != DT_NULL; j++)\r
{\r
break;\r
}\r
}\r
+ \r
+ LOG("hdr->misc.SymTable = %x, hdr->misc.HashTable = %x",\r
+ hdr->misc.SymTable, hdr->misc.HashTable);\r
\r
\r
// Alter Symbols to true base\r
pBuckets = PTR(hdr->misc.HashTable);\r
symtab = PTR(hdr->misc.SymTable);\r
\r
+// LOG("Base = %p : pBuckets = %p, symtab = %p\n", Base, pBuckets, symtab);\r
+ \r
+ if(!pBuckets || !symtab)\r
+ return 0;\r
+ \r
nbuckets = pBuckets[0];\r
iSymCount = pBuckets[1];\r
pBuckets = &pBuckets[2];\r