Changeset 2887
- Timestamp:
- Nov 18, 2006, 4:37:00 PM (19 years ago)
- Location:
- trunk/kLdr
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kLdr/kLdrDyld.c
r2875 r2887 695 695 uint32_t iLoadEnd = kldrDyldStackFrameCompleted(); 696 696 if (rc) 697 { 698 kldrDyldModAddRef(pLoadedMod); 697 699 kldrDyldStackCleanupOne(pLoadedMod, rc); /* in case it didn't get pushed onto the stack. */ 700 kldrDyldModDeref(pLoadedMod); 701 } 698 702 699 703 /* -
trunk/kLdr/kLdrModLX.c
r2886 r2887 386 386 if (pModLX->paObjs[i].o32_base + pModLX->paObjs[i].o32_size <= pModLX->paObjs[i].o32_base) 387 387 return KLDR_ERR_LX_BAD_OBJECT_TABLE; 388 if (pModLX->paObjs[i].o32_mapsize > pModLX->paObjs[i].o32_size / OBJPAGELEN)388 if (pModLX->paObjs[i].o32_mapsize > (pModLX->paObjs[i].o32_size + (OBJPAGELEN - 1))) 389 389 return KLDR_ERR_LX_BAD_OBJECT_TABLE; 390 390 if ( pModLX->paObjs[i].o32_mapsize … … 911 911 break; 912 912 913 iName = *(pbNameTable + cbName )914 | ((unsigned)*(pbNameTable + cbName + 1) << 8);913 iName = *(pbNameTable + cbName + 1) 914 | ((unsigned)*(pbNameTable + cbName + 2) << 8); 915 915 if (iName == iOrdinal) 916 916 return pbNameTable; … … 927 927 static int kldrModLXGetImport(PKLDRMOD pMod, const void *pvBits, uint32_t iImport, char *pszName, size_t cchName) 928 928 { 929 /*PKLDRMODLX pModLX = (PKLDRMODLX)pMod->pvData;*/930 const uint8_t * pb = NULL;929 PKLDRMODLX pModLX = (PKLDRMODLX)pMod->pvData; 930 const uint8_t * pb; 931 931 int rc; 932 932 933 /** @todo */ 934 933 /* 934 * Validate 935 */ 936 if (iImport >= pModLX->Hdr.e32_impmodcnt) 937 return KLDR_ERR_IMPORT_ORDINAL_OUT_OF_BOUNDS; 938 939 /* 940 * Lazy loading the fixup section. 941 */ 942 if (!pModLX->pbImportMods) 943 { 944 rc = kldrModLXDoLoadFixupSection(pModLX); 945 if (rc) 946 return rc; 947 } 948 949 /* 950 * Iterate the module import table until we reach the requested import ordinal. 951 */ 952 pb = pModLX->pbImportMods; 953 while (iImport-- > 0) 954 pb += *pb + 1; 955 956 /* 957 * Copy out the result. 958 */ 935 959 if (*pb < cchName) 936 960 {
Note:
See TracChangeset
for help on using the changeset viewer.