libuv/src
Matthew Taylor 78c17238f4 unix: always copy process title into local buffer
Ensures that the user's argv is copied into a local buffer when calling
uv_setup_args. Before, the argv was simply being pointed to, which
meant that libuv could end up accessing invalid memory if the user
decided to later edit the memory at that location. It also meant that a
subsequent call to uv_set_process_title would never write more
characters than the length of argv[0].

With the new changes, argv[0] is copied into a temporary buffer and any
subsequent calls to uv_set_process_title will thus be able to copy as
many characters as the call to uv__strdup permits. Note that on *BSD
and AIX this behaviour was already in effect .

Some error checking (specifically checking the result of uv__strdup)
has been added, and calls to uv__free rearranged so that in case of
ENOMEM uv__free can't be called erroneously.

Fixes: https://github.com/libuv/libuv/issues/1395
PR-URL: https://github.com/libuv/libuv/pull/1396
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-07-12 09:45:14 -04:00
..
unix unix: always copy process title into local buffer 2017-07-12 09:45:14 -04:00
win win,udp: return UV_EINVAL instead of aborting 2017-07-01 17:21:26 +02:00
fs-poll.c unix, win: count null byte on UV_ENOBUFS 2016-03-03 09:23:10 +01:00
heap-inl.h heap: fix heap_remove() 2014-05-23 20:04:42 +04:00
inet.c win: use the MSVC provided snprintf where possible 2015-09-29 09:01:33 +02:00
queue.h unix: use QUEUE_MOVE when iterating over lists 2015-10-08 21:47:43 +02:00
threadpool.c unix,windows: refactor request init logic 2017-03-21 16:14:09 +01:00
uv-common.c fs: fix crash in uv_fs_scandir_next 2017-01-17 21:15:43 -06:00
uv-common.h unix,windows: refactor request init logic 2017-03-21 16:14:09 +01:00
version.c core: add UV_VERSION_HEX macro 2015-06-29 23:08:41 +02:00