* Changed the _kern_exec() and _kern_load_image() syscalls. They expect
a flattened argument/environment buffer now. This simplifies the work for the kernel a bit, since it can just copy the buffer and check whether it looks OK instead of messing around with individual strings. The runtime loader also gets a flattened array. * Set the maximum size of the arguments/environment buffer to 128 KB. When more arguments are passed, we fail with a proper error code (instead of just truncating the arguments as before). * On exec*() the first argument was silently replaced by the given path name, which is not correct. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26119 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -26,6 +26,9 @@ status_t __parse_invoke_line(char *invoker, char ***_newArgs,
|
||||
status_t __get_next_image_dependency(image_id id, uint32 *cookie,
|
||||
const char **_name);
|
||||
status_t __test_executable(const char *path, char *invoker);
|
||||
status_t __flatten_process_args(const char* const* args, int32 argCount,
|
||||
const char* const* env, int32 envCount, char*** _flatArgs,
|
||||
size_t* _flatSize);
|
||||
void __init_env(const struct user_space_program_args *args);
|
||||
void __init_heap(void);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user