diff options
author | marha <marha@users.sourceforge.net> | 2009-12-08 11:23:34 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2009-12-08 11:23:34 +0000 |
commit | 75d2bbcf0f39b9c85bc270728343f61dabebce2d (patch) | |
tree | cc3c92e0383bc1ed885d25290167c46b1f9edb15 /xorg-server/hw/xquartz/mach-startup/stub.c | |
parent | 3e1ba549192a68801232c28a9c12defb59531654 (diff) | |
download | vcxsrv-75d2bbcf0f39b9c85bc270728343f61dabebce2d.tar.gz vcxsrv-75d2bbcf0f39b9c85bc270728343f61dabebce2d.tar.bz2 vcxsrv-75d2bbcf0f39b9c85bc270728343f61dabebce2d.zip |
Git update 8/12/2009
Diffstat (limited to 'xorg-server/hw/xquartz/mach-startup/stub.c')
-rw-r--r-- | xorg-server/hw/xquartz/mach-startup/stub.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/xorg-server/hw/xquartz/mach-startup/stub.c b/xorg-server/hw/xquartz/mach-startup/stub.c index af1c59efb..c8686e78f 100644 --- a/xorg-server/hw/xquartz/mach-startup/stub.c +++ b/xorg-server/hw/xquartz/mach-startup/stub.c @@ -306,12 +306,12 @@ int main(int argc, char **argv, char **envp) { /* We have fixed-size string lengths due to limitations in IPC, * so we need to copy our argv and envp. */ - newargv = (string_array_t)alloca(argc * sizeof(string_t)); - newenvp = (string_array_t)alloca(envpc * sizeof(string_t)); - + newargv = (string_array_t)malloc(argc * sizeof(string_t)); + newenvp = (string_array_t)malloc(envpc * sizeof(string_t)); + if(!newargv || !newenvp) { fprintf(stderr, "Xquartz: Memory allocation failure\n"); - exit(EXIT_FAILURE); + return EXIT_FAILURE; } for(i=0; i < argc; i++) { @@ -322,6 +322,10 @@ int main(int argc, char **argv, char **envp) { } kr = start_x11_server(mp, newargv, argc, newenvp, envpc); + + free(newargv); + free(newenvp); + if (kr != KERN_SUCCESS) { fprintf(stderr, "Xquartz: start_x11_server: %s\n", mach_error_string(kr)); return EXIT_FAILURE; |