Changeset 35183 in vbox for trunk/src/VBox/Runtime/common/ldr
- Timestamp:
- Dec 16, 2010 1:59:44 PM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 69022
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/ldr/ldrNative.cpp
r35152 r35183 96 96 RTDECL(int) RTLdrLoad(const char *pszFilename, PRTLDRMOD phLdrMod) 97 97 { 98 return RTLdrLoadEx(pszFilename, phLdrMod, 0 /* =fFlags*/, NULL, 0);98 return RTLdrLoadEx(pszFilename, phLdrMod, 0 /*fFlags*/, NULL); 99 99 } 100 100 RT_EXPORT_SYMBOL(RTLdrLoad); 101 101 102 102 103 RTDECL(int) RTLdrLoadEx(const char *pszFilename, PRTLDRMOD phLdrMod, uint32_t fFlags, char *pszError, size_t cbError)104 { 105 LogFlow(("RTLdrLoadEx: pszFilename=%p:{%s} phLdrMod=%p fFlags=% 08x pszError=%p cbError=%zu\n", pszFilename, pszFilename, phLdrMod, fFlags, pszError, cbError));103 RTDECL(int) RTLdrLoadEx(const char *pszFilename, PRTLDRMOD phLdrMod, uint32_t fFlags, PRTERRINFO pErrInfo) 104 { 105 LogFlow(("RTLdrLoadEx: pszFilename=%p:{%s} phLdrMod=%p fFlags=%#x pErrInfo=%p\n", pszFilename, pszFilename, phLdrMod, fFlags, pErrInfo)); 106 106 107 107 /* 108 108 * Validate and massage the input. 109 109 */ 110 if (!pszError) 111 AssertReturn(!cbError, VERR_INVALID_PARAMETER); 112 else 113 { 114 AssertPtrReturn(pszError, VERR_INVALID_POINTER); 115 if (cbError) 116 *pszError = '\0'; 117 else 118 pszError = NULL; 119 } 110 RTErrInfoClear(pErrInfo); 120 111 AssertPtrReturn(pszFilename, VERR_INVALID_POINTER); 121 112 AssertPtrReturn(phLdrMod, VERR_INVALID_POINTER); … … 136 127 * Attempt to open the module. 137 128 */ 138 rc = rtldrNativeLoad(pszFilename, &pMod->hNative, fFlags, p szError, cbError);129 rc = rtldrNativeLoad(pszFilename, &pMod->hNative, fFlags, pErrInfo); 139 130 if (RT_SUCCESS(rc)) 140 131 { … … 146 137 RTMemFree(pMod); 147 138 } 148 else if (cbError)149 RT StrPrintf(pszError, cbError, "Failed to allocate %zu bytes for the module handle", sizeof(*pMod));139 else 140 RTErrInfoSetF(pErrInfo, rc, "Failed to allocate %zu bytes for the module handle", sizeof(*pMod)); 150 141 *phLdrMod = NIL_RTLDRMOD; 151 142 LogFlow(("RTLdrLoad: returns %Rrc\n", rc));
Note:
See TracChangeset
for help on using the changeset viewer.