* dcrt0.cc (__argc_safe): New variable.
(dll_crt0_1): Store argc in __argc_safe, which will theoretically remain untouched by the user. * fhandler_console.cc (fhandler_console::read): Silence some compiler warnings. * fhandler_raw.cc (fhandler_dev_raw::raw_read): Ditto. * pinfo.cc (_pinfo::commune_recv): Carefully bound argv scan and check for potentially bad pointers since user could have set argv cell to anythinw. * cygheap.h (CYGHEAPSIZE): Bump up size.
This commit is contained in:
@@ -523,6 +523,7 @@ alloc_stack (child_info_fork *ci)
|
||||
}
|
||||
|
||||
static NO_COPY int mypid = 0;
|
||||
int __argc_safe;
|
||||
int _declspec(dllexport) __argc;
|
||||
char _declspec(dllexport) **__argv;
|
||||
vfork_save NO_COPY *main_vfork = NULL;
|
||||
@@ -606,7 +607,7 @@ dll_crt0_1 ()
|
||||
DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE))
|
||||
h = NULL;
|
||||
set_myself (mypid, h);
|
||||
__argc = spawn_info->moreinfo->argc;
|
||||
__argc = __argc_safe = spawn_info->moreinfo->argc;
|
||||
__argv = spawn_info->moreinfo->argv;
|
||||
envp = spawn_info->moreinfo->envp;
|
||||
envc = spawn_info->moreinfo->envc;
|
||||
|
Reference in New Issue
Block a user