Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
ea9cc97e
Commit
ea9cc97e
authored
Apr 22, 2019
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Only pass the NT path name to open_dll_file().
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
f7cf3c18
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
8 additions
and
7 deletions
+8
-7
loader.c
dlls/ntdll/loader.c
+8
-7
No files found.
dlls/ntdll/loader.c
View file @
ea9cc97e
...
...
@@ -1991,7 +1991,7 @@ static BOOL is_valid_binary( HMODULE module, const pe_image_info_t *info )
*
* Open a file for a new dll. Helper for find_dll_file.
*/
static
NTSTATUS
open_dll_file
(
const
WCHAR
*
name
,
UNICODE_STRING
*
nt_name
,
WINE_MODREF
**
pwm
,
static
NTSTATUS
open_dll_file
(
UNICODE_STRING
*
nt_name
,
WINE_MODREF
**
pwm
,
void
**
module
,
pe_image_info_t
*
image_info
,
struct
stat
*
st
)
{
FILE_BASIC_INFORMATION
info
;
...
...
@@ -2003,9 +2003,6 @@ static NTSTATUS open_dll_file( const WCHAR *name, UNICODE_STRING *nt_name, WINE_
HANDLE
handle
,
mapping
;
int
fd
,
needs_close
;
nt_name
->
Buffer
=
NULL
;
if
((
status
=
RtlDosPathNameToNtPathName_U_WithStatus
(
name
,
nt_name
,
NULL
,
NULL
)))
return
status
;
if
((
*
pwm
=
find_fullname_module
(
nt_name
)))
return
STATUS_SUCCESS
;
attr
.
Length
=
sizeof
(
attr
);
...
...
@@ -2397,7 +2394,11 @@ static NTSTATUS search_dll_file( LPCWSTR paths, LPCWSTR search, UNICODE_STRING *
memcpy
(
name
,
paths
,
len
*
sizeof
(
WCHAR
)
);
if
(
len
&&
name
[
len
-
1
]
!=
'\\'
)
name
[
len
++
]
=
'\\'
;
strcpyW
(
name
+
len
,
search
);
status
=
open_dll_file
(
name
,
nt_name
,
pwm
,
module
,
image_info
,
st
);
nt_name
->
Buffer
=
NULL
;
if
((
status
=
RtlDosPathNameToNtPathName_U_WithStatus
(
name
,
nt_name
,
NULL
,
NULL
)))
goto
done
;
status
=
open_dll_file
(
nt_name
,
pwm
,
module
,
image_info
,
st
);
if
(
status
==
STATUS_IMAGE_MACHINE_TYPE_MISMATCH
)
found_image
=
TRUE
;
else
if
(
status
!=
STATUS_DLL_NOT_FOUND
)
goto
done
;
RtlFreeUnicodeString
(
nt_name
);
...
...
@@ -2466,8 +2467,8 @@ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname,
if
(
RtlDetermineDosPathNameType_U
(
libname
)
==
RELATIVE_PATH
)
status
=
search_dll_file
(
load_path
,
libname
,
nt_name
,
pwm
,
module
,
image_info
,
st
);
else
status
=
open_dll_file
(
libname
,
nt_name
,
pwm
,
module
,
image_info
,
st
);
else
if
(
!
(
status
=
RtlDosPathNameToNtPathName_U_WithStatus
(
libname
,
nt_name
,
NULL
,
NULL
)))
status
=
open_dll_file
(
nt_name
,
pwm
,
module
,
image_info
,
st
);
if
(
status
==
STATUS_IMAGE_MACHINE_TYPE_MISMATCH
)
status
=
STATUS_INVALID_IMAGE_FORMAT
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment