deps: update libuv to 1.47.0
PR-URL: https://github.com/nodejs/node/pull/50650
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Notable changes:
- `uv_ip_name()` has been added.
- On Windows, `uv_fs_read()` and `uv_fs_write()` now return
`UV_EBADF` instead of `UV_EPERM` when the file descriptor
was opened with incorrect flags. This matches the behavior
on other platforms.
- Streams can be reset and attempted to read from after
EOF is read.
- The main thread now has a valid ID instead of `NULL`.
- `uv_cpu_info()` now supports `aarch64`.
- Several minor issues related to mingw32 have been fixed.
PR-URL: https://github.com/nodejs/node/pull/41398
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Beth Griggs <bgriggs@redhat.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Notable changes:
- win,tcp: make `uv_close()` work more like unix.
- cleanup,win: Remove `_WIN32` guards on threadpool.
- more errno mappings and fixes.
- higher performance try-writes.
- fix string encoding issue of `uv_os_gethostname()` (note: MINGW-W64
upstream is broken on i686 due to
https://sourceforge.net/p/mingw-w64/bugs/899/).
- zOS support.
- Workarounds for a `copy_file_range()` kernel bug.
- Better support for TSan.
- darwin: use `RLIMIT_STACK` for fsevents pthread.
- fix a bug that would cause libuv to hang if the user called
`uv_shutdown()`.
- darwin: fix `uv_barrier()` race condition.
PR-URL: https://github.com/nodejs/node/pull/39525
Fixes: https://github.com/nodejs/node/issues/39502
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Original commit message:
idna: fix OOB read in punycode decoder
Reported by Eric Sesterhenn in collaboration with
Cure53 and ExpressVPN.
Reported-By: Eric Sesterhenn <eric.sesterhenn@x41-dsec.de>
PR-URL: https://github.com/libuv/libuv-private/pull/1
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
CVE-ID: CVE-2021-22918
Refs: https://hackerone.com/reports/1209681
PR-URL: https://github.com/nodejs-private/node-private/pull/267
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Beth Griggs <bgriggs@redhat.com>
Notable changes:
- The IBM i platform has been promoted to a Tier 2 platform.
- libuv is now built with `-fno-strict-aliasing`, and recommends
that projects using libuv do the same.
- `uv_fs_mkdir()` now returns `UV_EINVAL` for invalid directory
names on Windows.
- `uv_uptime()` now returns the correct value on OpenVZ containers.
- Windows 8 is the new minimum supported version of Windows.
- Bind errors are now reported from `uv_tcp_connect()`.
- The `uv_pipe()` function has been added.
- The `uv_socketpair()` function has been added.
- `uv_read_start()` error handling has been unified across
Windows and Unix.
PR-URL: https://github.com/nodejs/node/pull/37360
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Notable changes:
- uv_metrics_idle_time() and UV_METRICS_IDLE_TIME have been added
for measuring the amount of time the event loop spends idle.
- uv_udp_using_recvmmsg() has been added to determine if a buffer
is large enough for multiple datagrams should be allocated in
the allocation callback of uv_udp_recvstart().
- On MinGW, the installation location has been updated to match
Unix systems rather than Windows.
- uv_fs_copyfile() now tries to use copy_file_range() when
possible.
- The test suite is now reported to pass on Darwin ARM64 (Apple
Silicon).
- uv_{get,set}_process_title() now returns an error on platforms
where uv_setup_args() is required, but has not yet been called.
- The _POSIX_PATH_MAX constant is no longer used, which could
lead to buffer overflows in uv_fs_readlink() and
uv_fs_realpath().
PR-URL: https://github.com/nodejs/node/pull/34915
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: David Carlier <devnexen@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Notable changes:
- A probable compiler bug in VS2019 was causing a
failed assertion in libuv which appeared to the
user as though the system clock was drifting. The
`uv_hrtime()` code on Windows has been rearranged
to work around the issue.
- On Linux, `uv_loadavg()` attempts to read from
`/proc/loadavg` before falling back to calling
`sysinfo()`. This works around a bug in LXC.
- A deadlock in the Windows TTY code has been fixed.
- An issue on macOS related to monotonic clocks jumping
back in time has been worked around.
PR-URL: https://github.com/nodejs/node/pull/34187
Reviewed-By: David Carlier <devnexen@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Notable changes:
- `uv_library_shutdown()` has been added.
- `uv_udp_init_ex()` now accepts `UV_UDP_RECVMMSG`, although it
is a no-op.
- Obsolete `MAX_PATH` restrictions have been removed on Windows,
and Windows is now long path aware.
- Windows environment variables longer than 32,767 characters are
now supported.
- Linux `cpu_times` are now reported as milliseconds to match
other platforms.
- A memory leak resulting from `uv_loop_init()` failures has
been fixed.
PR-URL: https://github.com/nodejs/node/pull/33446
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Notable changes:
- gyp support has been removed.
- recvmmsg messages are returned in the correct order.
- IBMi cmake support has been added.
- uv_fs_lutime() has been added.
- uv_fs_statfs() on Windows properly handles file paths.
PR-URL: https://github.com/nodejs/node/pull/32866
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: David Carlier <devnexen@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Notable changes:
- The UV_UDP_MMSG_CHUNK UDP flag has been added.
- Support has been dropped for FreeBSD < 10.
- The FreeBSD and Linux system call logic has been simplified to assume the
presence of features covered by libuv's minimum system requirements.
- Listening on IPC pipes is no longer allowed.
- Fix iOS and Android builds.
PR-URL: https://github.com/nodejs/node/pull/32204
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Notable changes:
- Fix handling of large files in uv_fs_copyfile().
Fixes: https://github.com/nodejs/node/issues/30085
- Fix Android build errors.
- uv_sleep() has been added.
- uv_interface_addresses() IPv6 netmask support has been fixed.
Fixes: https://github.com/nodejs/node/issues/30504
- uv_fs_mkstemp() has been added.
PR-URL: https://github.com/nodejs/node/pull/30783
Fixes: https://github.com/nodejs/node/issues/30085
Fixes: https://github.com/nodejs/node/issues/30504
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Notable changes:
- uv_random() has been added.
- More work to read those pesky Windows
environment variables.
- Several build fixes for Tier 3 platforms (Android,
NetBSD, OpenBSD, Haiku).
- Stop using fsevents to watch files (using kqueue again).
PR-URL: https://github.com/nodejs/node/pull/29996
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: David Carlier <devnexen@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Notable changes:
- `uv_tcp_close_reset()` has been added.
- `uv_udp_set_source_membership()` has been added.
- A double free in `uv_free_cpu_info()` on OpenBSD
has been fixed.
- Defined, but empty environment variables can now
be read on Windows.
- Several improvements to the cmake build process.
- The `EILSEQ` error code is now mapped by libuv.
PR-URL: https://github.com/nodejs/node/pull/29508
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: David Carlier <devnexen@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Notable changes:
- UV_FS_O_FILEMAP has been added for faster access to memory
mapped files on Windows.
- uv_fs_mkdir() now returns UV_EINVAL for invalid filenames
on Windows. It previously returned UV_ENOENT.
- The uv_fs_statfs() API has been added.
- The uv_os_environ() and uv_os_free_environ() APIs have
been added.
Fixes: https://github.com/nodejs/node/issues/28599
Fixes: https://github.com/nodejs/node/issues/28945
Fixes: https://github.com/nodejs/node/issues/29008
PR-URL: https://github.com/nodejs/node/pull/29070
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Notable changes:
- Support for the Haiku platform has been added.
- The maximum UV_THREADPOOL_SIZE has been increased from
128 to 1024.
- uv_fs_copyfile() now works properly when the source and
destination files are the same.
PR-URL: https://github.com/nodejs/node/pull/28449
Fixes: https://github.com/nodejs/node/issues/27746
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Notable changes:
- uv_get_constrained_memory() has been added.
- A race condition in uv_async_send() has been fixed.
- uv_get_free_memory() and uv_get_total_memory() now read from
/proc/meminfo, which should improve correctness when called
from inside an lxc container.
- A failed assertion in uv_fs_poll_stop() has been fixed.
- A bug in MAC addresses for IP-aliases has been fixed.
Fixes: https://github.com/nodejs/node/issues/27170
Fixes: https://github.com/nodejs/node/issues/27493
PR-URL: https://github.com/nodejs/node/pull/27718
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Notable changes:
- uv_gettimeofday() has been added.
- Streaming readdir() via the uv_fs_{open,read,close}dir() methods.
- A macOS copyfile() permissions bug has been fixed.
- A bug in uv_interface_addresses() on machines with multiple
interfaces has been fixed.
Fixes: https://github.com/nodejs/node/issues/27273
PR-URL: https://github.com/nodejs/node/pull/27241
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Notable changes:
- `statx()` is used to retrieve file birth times on
supported platforms.
- Improved support of running under Windows safe mode.
- Add support for UDP connected sockets. Several functions
can now return `UV_EBADF` instead of `UV_EINVAL`.
- SunOS support is improved.
PR-URL: https://github.com/nodejs/node/pull/26707
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/21731
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14117
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>