Alexandre Julliard : server: Get rid of the exe_file parameter in the new_process request.
Alexandre Julliard
julliard at winehq.org
Tue Jan 26 15:54:06 CST 2021
Module: wine
Branch: master
Commit: 5ff2b7d98fc7fc892ca1a4171a0caab0f65a4e34
URL: https://source.winehq.org/git/wine.git/?a=commit;h=5ff2b7d98fc7fc892ca1a4171a0caab0f65a4e34
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Jan 26 16:38:38 2021 +0100
server: Get rid of the exe_file parameter in the new_process request.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/unix/process.c | 1 -
include/wine/server_protocol.h | 4 +---
server/process.c | 10 ----------
server/process.h | 1 -
server/protocol.def | 1 -
server/request.h | 11 +++++------
server/trace.c | 1 -
7 files changed, 6 insertions(+), 23 deletions(-)
diff --git a/dlls/ntdll/unix/process.c b/dlls/ntdll/unix/process.c
index 57bb8002dfa..b8bbdaadbce 100644
--- a/dlls/ntdll/unix/process.c
+++ b/dlls/ntdll/unix/process.c
@@ -946,7 +946,6 @@ NTSTATUS WINAPI NtCreateUserProcess( HANDLE *process_handle_ptr, HANDLE *thread_
req->inherit_all = !!(process_flags & PROCESS_CREATE_FLAGS_INHERIT_HANDLES);
req->create_flags = params->DebugFlags; /* hack: creation flags stored in DebugFlags for now */
req->socket_fd = socketfd[1];
- req->exe_file = wine_server_obj_handle( file_handle );
req->access = process_access;
req->cpu = pe_info.cpu;
req->info_size = startup_info_size;
diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h
index f070c604fdd..5201be51172 100644
--- a/include/wine/server_protocol.h
+++ b/include/wine/server_protocol.h
@@ -794,7 +794,6 @@ struct new_process_request
int inherit_all;
unsigned int create_flags;
int socket_fd;
- obj_handle_t exe_file;
unsigned int access;
client_cpu_t cpu;
data_size_t info_size;
@@ -803,7 +802,6 @@ struct new_process_request
/* VARARG(handles,uints,handles_size); */
/* VARARG(info,startup_info,info_size); */
/* VARARG(env,unicode_str); */
- char __pad_52[4];
};
struct new_process_reply
{
@@ -6191,7 +6189,7 @@ union generic_reply
/* ### protocol_version begin ### */
-#define SERVER_PROTOCOL_VERSION 654
+#define SERVER_PROTOCOL_VERSION 655
/* ### protocol_version end ### */
diff --git a/server/process.c b/server/process.c
index 4a366b4d3b0..3dabe0e6cfa 100644
--- a/server/process.c
+++ b/server/process.c
@@ -532,7 +532,6 @@ struct process *create_process( int fd, struct process *parent, int inherit_all,
process->startup_state = STARTUP_IN_PROGRESS;
process->startup_info = NULL;
process->idle_event = NULL;
- process->exe_file = NULL;
process->peb = 0;
process->ldt_copy = 0;
process->dir_cache = NULL;
@@ -642,7 +641,6 @@ static void process_destroy( struct object *obj )
if (process->msg_fd) release_object( process->msg_fd );
list_remove( &process->entry );
if (process->idle_event) release_object( process->idle_event );
- if (process->exe_file) release_object( process->exe_file );
if (process->id) free_ptid( process->id );
if (process->token) release_object( process->token );
free( process->dir_cache );
@@ -912,9 +910,7 @@ static void process_killed( struct process *process )
close_process_handles( process );
cancel_process_asyncs( process );
if (process->idle_event) release_object( process->idle_event );
- if (process->exe_file) release_object( process->exe_file );
process->idle_event = NULL;
- process->exe_file = NULL;
assert( !process->console );
while ((ptr = list_head( &process->rawinput_devices )))
@@ -1237,10 +1233,6 @@ DECL_HANDLER(new_process)
process->startup_info = (struct startup_info *)grab_object( info );
- if (req->exe_file &&
- !(process->exe_file = get_file_obj( current->process, req->exe_file, FILE_READ_DATA )))
- goto done;
-
if (parent->job
&& !(req->create_flags & CREATE_BREAKAWAY_FROM_JOB)
&& !(parent->job->limit_flags & JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK))
@@ -1384,8 +1376,6 @@ DECL_HANDLER(init_process_done)
process->ldt_copy = req->ldt_copy;
process->start_time = current_time;
current->entry_point = req->entry;
- if (process->exe_file) release_object( process->exe_file );
- process->exe_file = NULL;
init_process_tracing( process );
generate_startup_debug_events( process, req->entry );
diff --git a/server/process.h b/server/process.h
index 374eda65b6b..9e765e16010 100644
--- a/server/process.h
+++ b/server/process.h
@@ -84,7 +84,6 @@ struct process
enum startup_state startup_state; /* startup state */
struct startup_info *startup_info; /* startup info while init is in progress */
struct event *idle_event; /* event for input idle */
- struct file *exe_file; /* file handle for main exe (during startup only) */
obj_handle_t winstation; /* main handle to process window station */
obj_handle_t desktop; /* handle to desktop to use for new threads */
struct token *token; /* security token associated with this process */
diff --git a/server/protocol.def b/server/protocol.def
index bac6b58e215..668da523690 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -808,7 +808,6 @@ typedef struct
int inherit_all; /* inherit all handles from parent */
unsigned int create_flags; /* creation flags */
int socket_fd; /* file descriptor for process socket */
- obj_handle_t exe_file; /* file handle for main exe */
unsigned int access; /* access rights for process object */
client_cpu_t cpu; /* CPU that the new process will use */
data_size_t info_size; /* size of startup info */
diff --git a/server/request.h b/server/request.h
index 972db53a889..e913615238b 100644
--- a/server/request.h
+++ b/server/request.h
@@ -710,12 +710,11 @@ C_ASSERT( FIELD_OFFSET(struct new_process_request, parent_process) == 16 );
C_ASSERT( FIELD_OFFSET(struct new_process_request, inherit_all) == 20 );
C_ASSERT( FIELD_OFFSET(struct new_process_request, create_flags) == 24 );
C_ASSERT( FIELD_OFFSET(struct new_process_request, socket_fd) == 28 );
-C_ASSERT( FIELD_OFFSET(struct new_process_request, exe_file) == 32 );
-C_ASSERT( FIELD_OFFSET(struct new_process_request, access) == 36 );
-C_ASSERT( FIELD_OFFSET(struct new_process_request, cpu) == 40 );
-C_ASSERT( FIELD_OFFSET(struct new_process_request, info_size) == 44 );
-C_ASSERT( FIELD_OFFSET(struct new_process_request, handles_size) == 48 );
-C_ASSERT( sizeof(struct new_process_request) == 56 );
+C_ASSERT( FIELD_OFFSET(struct new_process_request, access) == 32 );
+C_ASSERT( FIELD_OFFSET(struct new_process_request, cpu) == 36 );
+C_ASSERT( FIELD_OFFSET(struct new_process_request, info_size) == 40 );
+C_ASSERT( FIELD_OFFSET(struct new_process_request, handles_size) == 44 );
+C_ASSERT( sizeof(struct new_process_request) == 48 );
C_ASSERT( FIELD_OFFSET(struct new_process_reply, info) == 8 );
C_ASSERT( FIELD_OFFSET(struct new_process_reply, pid) == 12 );
C_ASSERT( FIELD_OFFSET(struct new_process_reply, handle) == 16 );
diff --git a/server/trace.c b/server/trace.c
index 750b83281c8..f1f47f9ea31 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -1314,7 +1314,6 @@ static void dump_new_process_request( const struct new_process_request *req )
fprintf( stderr, ", inherit_all=%d", req->inherit_all );
fprintf( stderr, ", create_flags=%08x", req->create_flags );
fprintf( stderr, ", socket_fd=%d", req->socket_fd );
- fprintf( stderr, ", exe_file=%04x", req->exe_file );
fprintf( stderr, ", access=%08x", req->access );
dump_client_cpu( ", cpu=", &req->cpu );
fprintf( stderr, ", info_size=%u", req->info_size );
More information about the wine-cvs
mailing list