diff options
author | cjihrig <cjihrig@gmail.com> | 2017-11-30 21:41:16 -0500 |
---|---|---|
committer | cjihrig <cjihrig@gmail.com> | 2017-12-01 09:01:04 -0500 |
commit | 5ebfaa88917ebcef1dd69e31e40014ce237c60e2 (patch) | |
tree | c3b3e08a1b9a461252992e29f70cbabc26bbd4b3 /deps/uv/src/unix/process.c | |
parent | 3327ce0dd2f1d7d6255deb13314fdd7e7a2fb8aa (diff) | |
download | android-node-v8-5ebfaa88917ebcef1dd69e31e40014ce237c60e2.tar.gz android-node-v8-5ebfaa88917ebcef1dd69e31e40014ce237c60e2.tar.bz2 android-node-v8-5ebfaa88917ebcef1dd69e31e40014ce237c60e2.zip |
deps: upgrade libuv to 1.18.0
PR-URL: https://github.com/nodejs/node/pull/17282
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'deps/uv/src/unix/process.c')
-rw-r--r-- | deps/uv/src/unix/process.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/deps/uv/src/unix/process.c b/deps/uv/src/unix/process.c index 80b9686ec8..9842710d0e 100644 --- a/deps/uv/src/unix/process.c +++ b/deps/uv/src/unix/process.c @@ -419,6 +419,7 @@ int uv_spawn(uv_loop_t* loop, return -ENOSYS; #else int signal_pipe[2] = { -1, -1 }; + int pipes_storage[8][2]; int (*pipes)[2]; int stdio_count; ssize_t r; @@ -443,7 +444,10 @@ int uv_spawn(uv_loop_t* loop, stdio_count = 3; err = -ENOMEM; - pipes = uv__malloc(stdio_count * sizeof(*pipes)); + pipes = pipes_storage; + if (stdio_count > (int) ARRAY_SIZE(pipes_storage)) + pipes = uv__malloc(stdio_count * sizeof(*pipes)); + if (pipes == NULL) goto error; @@ -548,7 +552,9 @@ int uv_spawn(uv_loop_t* loop, process->pid = pid; process->exit_cb = options->exit_cb; - uv__free(pipes); + if (pipes != pipes_storage) + uv__free(pipes); + return exec_errorno; error: @@ -562,7 +568,9 @@ error: if (pipes[i][1] != -1) uv__close_nocheckstdio(pipes[i][1]); } - uv__free(pipes); + + if (pipes != pipes_storage) + uv__free(pipes); } return err; |