Changeset 2867 for trunk/kLdr/kLdrDyld.c


Ignore:
Timestamp:
Nov 11, 2006, 10:33:17 AM (19 years ago)
Author:
bird
Message:

top half of the filesearching is done.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kLdr/kLdrDyld.c

    r2866 r2867  
    9494char            g_szkLdrDyldError[1024];
    9595
    96 /** The Library search path. */
    97 char            kLdrDyldLibraryPath[4096];
    98 
    9996/** The default flags. */
    10097uint32_t        kLdrDyldFlags = 0;
    10198/** The default search method. */
    10299KLDRDYLDSEARCH  kLdrDyldSearch = KLDRDYLD_SEARCH_INVALID;
    103 /** The default DLL prefix. */
    104 char            kLdrDyldDefPrefix[16];
    105 /** The default DLL suffix. */
    106 char            kLdrDyldDefSuffix[16];
    107100
    108101
     
    236229void kldrDoDyldLoadExe(PKLDREXEARGS pArgs)
    237230{
    238     void *pvStack = NULL;
    239     size_t cbStack = 0;
    240     PKLDRDYLDMOD pExe = NULL;
     231    void *pvStack;
     232    size_t cbStack;
     233    PKLDRDYLDMOD pExe;
    241234    int rc;
    242235
    243236    /*
    244      * Copy the arguments into the globals and do loader init.
     237     * Copy the arguments into the globals and do loader init (probably already initialized).
    245238     */
    246239    kLdrDyldFlags = pArgs->fFlags;
    247240    kLdrDyldSearch = pArgs->enmSearch;
    248     kLdrHlpMemCopy(kLdrDyldDefPrefix, pArgs->szDefPrefix, KLDR_MIN(sizeof(pArgs->szDefPrefix), sizeof(kLdrDyldDefPrefix)));
    249     kLdrHlpMemCopy(kLdrDyldDefSuffix, pArgs->szDefSuffix, KLDR_MIN(sizeof(pArgs->szDefSuffix), sizeof(kLdrDyldDefSuffix)));
    250     kLdrHlpMemCopy(kLdrDyldLibraryPath, pArgs->szLibPath, KLDR_MIN(sizeof(pArgs->szLibPath), sizeof(kLdrDyldLibraryPath)));
     241    if (pArgs->szDefPrefix[0] != '\0')
     242        kLdrHlpMemCopy(kLdrDyldDefPrefix, pArgs->szDefPrefix, KLDR_MIN(sizeof(pArgs->szDefPrefix), sizeof(kLdrDyldDefPrefix)));
     243    if (pArgs->szDefSuffix[0] != '\0')
     244        kLdrHlpMemCopy(kLdrDyldDefSuffix, pArgs->szDefSuffix, KLDR_MIN(sizeof(pArgs->szDefSuffix), sizeof(kLdrDyldDefSuffix)));
     245    /* append */ /** @todo create a function for doing this, an exposed api preferably. */
     246    cbStack = sizeof(kLdrDyldPath) - kLdrHlpStrLen(kLdrDyldPath); /* borrow cbStack for a itty bit. */
     247    kLdrHlpMemCopy(kLdrDyldPath, pArgs->szLibPath, KLDR_MIN(sizeof(pArgs->szLibPath), cbStack));
     248    kLdrDyldPath[sizeof(kLdrDyldPath) - 1] = '\0';
    251249
    252250    g_fBootstrapping = 1;
Note: See TracChangeset for help on using the changeset viewer.