Joris van der Wel joris@jorisvanderwel.com writes:
- 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 process_access; /* access rights for process object */
- unsigned int process_attr; /* attributes for process object */
- unsigned int thread_access; /* access rights for thread object */
- unsigned int thread_attr; /* attributes for thread object */
- cpu_type_t cpu; /* CPU that the new process will use */
- data_size_t process_sd_size; /* size of the process security descriptor */
- data_size_t thread_sd_size; /* size of the thread security descriptor */
- data_size_t info_size; /* size of startup info */
- data_size_t env_size; /* size of the environment */
- VARARG(process_sd,security_descriptor,process_sd_size); /* security descriptor to set on the process */
- VARARG(thread_sd,security_descriptor,thread_sd_size); /* security descriptor to set on the thread */
- VARARG(info,startup_info,info_size); /* startup information */
- VARARG(env,unicode_str,env_size); /* environment for new process */
There's no reason to add the environment size. Also you need to validate all the sizes before using them. And please avoid reformatting lines that you are not changing.