ntdll: Allow module with extensions in forward specifications.
This commit is contained in:
parent
08d1398d97
commit
84fb1e1f3f
|
@ -328,13 +328,18 @@ static FARPROC find_forwarded_export( HMODULE module, const char *forward )
|
||||||
DWORD exp_size;
|
DWORD exp_size;
|
||||||
WINE_MODREF *wm;
|
WINE_MODREF *wm;
|
||||||
WCHAR mod_name[32];
|
WCHAR mod_name[32];
|
||||||
const char *end = strchr(forward, '.');
|
const char *end = strrchr(forward, '.');
|
||||||
FARPROC proc = NULL;
|
FARPROC proc = NULL;
|
||||||
|
|
||||||
if (!end) return NULL;
|
if (!end) return NULL;
|
||||||
if ((end - forward) * sizeof(WCHAR) >= sizeof(mod_name) - sizeof(dllW)) return NULL;
|
if ((end - forward) * sizeof(WCHAR) >= sizeof(mod_name)) return NULL;
|
||||||
ascii_to_unicode( mod_name, forward, end - forward );
|
ascii_to_unicode( mod_name, forward, end - forward );
|
||||||
|
mod_name[end - forward] = 0;
|
||||||
|
if (!strchrW( mod_name, '.' ))
|
||||||
|
{
|
||||||
|
if ((end - forward) * sizeof(WCHAR) >= sizeof(mod_name) - sizeof(dllW)) return NULL;
|
||||||
memcpy( mod_name + (end - forward), dllW, sizeof(dllW) );
|
memcpy( mod_name + (end - forward), dllW, sizeof(dllW) );
|
||||||
|
}
|
||||||
|
|
||||||
if (!(wm = find_basename_module( mod_name )))
|
if (!(wm = find_basename_module( mod_name )))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue