Ignore:
Timestamp:
Nov 3, 2006, 4:39:12 AM (19 years ago)
Author:
bird
Message:

Hacking away on the PE module interpreter.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kLdr/kLdrDyldMod.c

    r2850 r2854  
    884884                                             PKLDRADDR puValue, uint32_t *pfKind, void *pvUser)
    885885{
     886    static int s_cRecursiveCalls = 0;
     887    PKLDRDYLDMOD pDyldMod = (PKLDRDYLDMOD)pvUser;
    886888    int rc;
    887     PKLDRDYLDMOD pDyldMod = (PKLDRDYLDMOD)pvUser;
     889
     890    /* guard against too deep forwarder recursion. */
     891    if (s_cRecursiveCalls >= 5)
     892        return KLDR_ERR_TOO_LONG_FORWARDER_CHAIN;
     893    s_cRecursiveCalls++;
    888894
    889895    if (iImport != NIL_KLDRMOD_IMPORT)
     
    901907
    902908        rc = kLdrModQuerySymbol(pPrereqMod->pMod, NULL, KLDRMOD_BASEADDRESS_MAP,
    903                                 uSymbol, pszSymbol, puValue, pfKind);
     909                                uSymbol, pszSymbol, kldrDyldModFixupGetImportCallback, pPrereqMod, puValue, pfKind);
    904910        if (rc)
    905911        {
     
    923929            KLDRADDR uValue;
    924930            rc = kLdrModQuerySymbol(pBindMod->pMod, NULL, KLDRMOD_BASEADDRESS_MAP,
    925                                     uSymbol, pszSymbol, &uValue, &fKind);
     931                                    uSymbol, pszSymbol, kldrDyldModFixupGetImportCallback, pPrereqMod, &uValue, &fKind);
    926932            if (    !rc
    927933                &&  (   !fFound
     
    950956    }
    951957
     958    s_cRecursiveCalls--;
    952959    return rc;
    953960}
     
    12051212
    12061213    rc = kLdrModQuerySymbol(pMod->pMod, NULL, KLDRMOD_BASEADDRESS_MAP,
    1207                             uSymbolOrdinal, pszSymbolName, &uValue, &fKind);
     1214                            uSymbolOrdinal, pszSymbolName, kldrDyldModFixupGetImportCallback, pPrereqMod,
     1215                            &uValue, &fKind);
    12081216    if (!rc)
    12091217    {
Note: See TracChangeset for help on using the changeset viewer.