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
fd60a33e
Commit
fd60a33e
authored
Oct 08, 2018
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
kernel32: Pass the full filename to winevdm.exe in CreateProcessW().
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
2475cb76
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
8 additions
and
8 deletions
+8
-8
process.c
dlls/kernel32/process.c
+8
-8
No files found.
dlls/kernel32/process.c
View file @
fd60a33e
...
...
@@ -107,7 +107,9 @@ static const WCHAR comW[] = {'.','c','o','m',0};
static
const
WCHAR
batW
[]
=
{
'.'
,
'b'
,
'a'
,
't'
,
0
};
static
const
WCHAR
cmdW
[]
=
{
'.'
,
'c'
,
'm'
,
'd'
,
0
};
static
const
WCHAR
pifW
[]
=
{
'.'
,
'p'
,
'i'
,
'f'
,
0
};
static
const
WCHAR
winevdmW
[]
=
{
'w'
,
'i'
,
'n'
,
'e'
,
'v'
,
'd'
,
'm'
,
'.'
,
'e'
,
'x'
,
'e'
,
0
};
static
WCHAR
winevdm
[]
=
{
'C'
,
':'
,
'\\'
,
'w'
,
'i'
,
'n'
,
'd'
,
'o'
,
'w'
,
's'
,
'\\'
,
's'
,
'y'
,
's'
,
't'
,
'e'
,
'm'
,
'3'
,
'2'
,
'\\'
,
'w'
,
'i'
,
'n'
,
'e'
,
'v'
,
'd'
,
'm'
,
'.'
,
'e'
,
'x'
,
'e'
,
0
};
static
void
exec_process
(
LPCWSTR
name
);
...
...
@@ -1140,6 +1142,7 @@ static void init_windows_dirs(void)
if
(
is_win64
||
is_wow64
)
/* SysWow64 is always defined on 64-bit */
{
DIR_SysWow64
=
default_syswow64W
;
memcpy
(
winevdm
,
default_syswow64W
,
sizeof
(
default_syswow64W
)
-
sizeof
(
WCHAR
)
);
if
(
!
CreateDirectoryW
(
DIR_SysWow64
,
NULL
)
&&
GetLastError
()
!=
ERROR_ALREADY_EXISTS
)
ERR
(
"directory %s could not be created, error %u
\n
"
,
debugstr_w
(
DIR_SysWow64
),
GetLastError
()
);
...
...
@@ -1445,9 +1448,7 @@ void CDECL __wine_kernel_init(void)
}
else
if
(
error
==
ERROR_MOD_NOT_FOUND
)
{
if
((
p
=
strrchrW
(
main_exe_name
,
'\\'
)))
p
++
;
else
p
=
main_exe_name
;
if
(
!
strcmpiW
(
p
,
winevdmW
)
&&
__wine_main_argc
>
3
)
if
(
!
strcmpiW
(
main_exe_name
,
winevdm
)
&&
__wine_main_argc
>
3
)
{
/* args 1 and 2 are --app-name full_path */
MESSAGE
(
"wine: could not run %s: 16-bit/DOS support missing
\n
"
,
...
...
@@ -2438,17 +2439,16 @@ static BOOL create_vdm_process( LPCWSTR filename, LPWSTR cmd_line, LPWSTR env, L
return
FALSE
;
new_cmd_line
=
HeapAlloc
(
GetProcessHeap
(),
0
,
(
strlenW
(
buffer
)
+
strlenW
(
cmd_line
)
+
30
)
*
sizeof
(
WCHAR
));
(
strlenW
(
buffer
)
+
strlenW
(
cmd_line
)
+
strlenW
(
winevdm
)
+
16
)
*
sizeof
(
WCHAR
));
if
(
!
new_cmd_line
)
{
SetLastError
(
ERROR_OUTOFMEMORY
);
return
FALSE
;
}
sprintfW
(
new_cmd_line
,
argsW
,
winevdm
W
,
buffer
,
cmd_line
);
sprintfW
(
new_cmd_line
,
argsW
,
winevdm
,
buffer
,
cmd_line
);
memset
(
&
pe_info
,
0
,
sizeof
(
pe_info
)
);
pe_info
.
machine
=
IMAGE_FILE_MACHINE_I386
;
ret
=
create_process
(
0
,
winevdm
W
,
new_cmd_line
,
env
,
cur_dir
,
psa
,
tsa
,
inherit
,
ret
=
create_process
(
0
,
winevdm
,
new_cmd_line
,
env
,
cur_dir
,
psa
,
tsa
,
inherit
,
flags
,
startup
,
info
,
unixdir
,
&
pe_info
,
exec_only
);
HeapFree
(
GetProcessHeap
(),
0
,
new_cmd_line
);
return
ret
;
...
...
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