mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 17:05:46 +00:00
- Use SEH in LdrGetProcedureAddress. It fixes an exception in "kernel32_winetest module" and some wine tests
svn path=/trunk/; revision=40522
This commit is contained in:
parent
8bb2786d95
commit
17e2ab8999
1 changed files with 10 additions and 2 deletions
|
@ -2486,7 +2486,9 @@ LdrGetProcedureAddress (IN PVOID BaseAddress,
|
|||
DPRINT("LdrGetProcedureAddress (BaseAddress %p Name %Z Ordinal %lu ProcedureAddress %p)\n",
|
||||
BaseAddress, Name, Ordinal, ProcedureAddress);
|
||||
|
||||
if (Name && Name->Length)
|
||||
_SEH2_TRY
|
||||
{
|
||||
if (Name && Name->Length)
|
||||
{
|
||||
/* by name */
|
||||
*ProcedureAddress = LdrGetExportByName(BaseAddress, (PUCHAR)Name->Buffer, 0xffff);
|
||||
|
@ -2496,7 +2498,7 @@ LdrGetProcedureAddress (IN PVOID BaseAddress,
|
|||
}
|
||||
DPRINT("LdrGetProcedureAddress: Can't resolve symbol '%Z'\n", Name);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
/* by ordinal */
|
||||
Ordinal &= 0x0000FFFF;
|
||||
|
@ -2507,6 +2509,12 @@ LdrGetProcedureAddress (IN PVOID BaseAddress,
|
|||
}
|
||||
DPRINT("LdrGetProcedureAddress: Can't resolve symbol @%lu\n", Ordinal);
|
||||
}
|
||||
}
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
/* Ignore exception and return */
|
||||
}
|
||||
_SEH2_END;
|
||||
return STATUS_PROCEDURE_NOT_FOUND;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue