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
e588e218
Commit
e588e218
authored
Mar 28, 2023
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Only fall back to start.exe when using a different loader.
parent
bdc11ee0
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
10 additions
and
2 deletions
+10
-2
env.c
dlls/ntdll/unix/env.c
+8
-1
loader.c
dlls/ntdll/unix/loader.c
+1
-1
unix_private.h
dlls/ntdll/unix/unix_private.h
+1
-0
No files found.
dlls/ntdll/unix/env.c
View file @
e588e218
...
...
@@ -1932,8 +1932,15 @@ static RTL_USER_PROCESS_PARAMETERS *build_initial_params( void **module )
status
=
load_main_exe
(
NULL
,
main_argv
[
1
],
curdir
,
&
image
,
module
);
if
(
!
status
)
{
char
*
loader
;
if
(
main_image_info
.
ImageCharacteristics
&
IMAGE_FILE_DLL
)
status
=
STATUS_INVALID_IMAGE_FORMAT
;
if
(
main_image_info
.
Machine
!=
current_machine
)
status
=
STATUS_INVALID_IMAGE_FORMAT
;
/* if we have to use a different loader, fall back to start.exe */
if
((
loader
=
get_alternate_wineloader
(
main_image_info
.
Machine
)))
{
free
(
loader
);
status
=
STATUS_INVALID_IMAGE_FORMAT
;
}
}
if
(
status
)
/* try launching it through start.exe */
...
...
dlls/ntdll/unix/loader.c
View file @
e588e218
...
...
@@ -656,7 +656,7 @@ static void init_paths( char *argv[] )
/***********************************************************************
* get_alternate_wineloader
*/
static
char
*
get_alternate_wineloader
(
WORD
machine
)
char
*
get_alternate_wineloader
(
WORD
machine
)
{
char
*
ret
=
NULL
;
...
...
dlls/ntdll/unix/unix_private.h
View file @
e588e218
...
...
@@ -175,6 +175,7 @@ extern void init_startup_info(void) DECLSPEC_HIDDEN;
extern
void
*
create_startup_info
(
const
UNICODE_STRING
*
nt_image
,
const
RTL_USER_PROCESS_PARAMETERS
*
params
,
DWORD
*
info_size
)
DECLSPEC_HIDDEN
;
extern
char
**
build_envp
(
const
WCHAR
*
envW
)
DECLSPEC_HIDDEN
;
extern
char
*
get_alternate_wineloader
(
WORD
machine
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
exec_wineloader
(
char
**
argv
,
int
socketfd
,
const
pe_image_info_t
*
pe_info
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
load_builtin
(
const
pe_image_info_t
*
image_info
,
WCHAR
*
filename
,
void
**
addr_ptr
,
SIZE_T
*
size_ptr
,
ULONG_PTR
zero_bits
)
DECLSPEC_HIDDEN
;
...
...
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