6ac063d1 | 05-Mar-2022 |
Jameson Nash |
process: only use F_DUPFD_CLOEXEC if it is defined (#3512) We can save a syscall on most modern systems (required by POSIX 2008), but not on all systems. Also handle errors from
process: only use F_DUPFD_CLOEXEC if it is defined (#3512) We can save a syscall on most modern systems (required by POSIX 2008), but not on all systems. Also handle errors from CLOEXEC. Even though fcntl does not really define there to be any, it could theoretically be EBADF if the user happened to pass a bad file descriptor to the same number fd (such that no other code happened to already fail on that).
show more ...
|
fd34b17f | 05-Mar-2022 |
Ben Noordhuis |
zos: fix build breakage (#3513) Introduced earlier today in commit f250c6c7. _SC_NPROCESSORS_ONLN does not seem to be defined on that platform. |
60fbcad9 | 05-Mar-2022 |
Jameson Nash |
process: remove OpenBSD from kevent list (#3506) From user reports, it appears that OpenBSD has a broken kevent NOTE_EXIT implementation. However, we can simply go back to the old, slowe
process: remove OpenBSD from kevent list (#3506) From user reports, it appears that OpenBSD has a broken kevent NOTE_EXIT implementation. However, we can simply go back to the old, slower version therefore. Fix: https://github.com/libuv/libuv/issues/3504
show more ...
|
f250c6c7 | 04-Mar-2022 |
Ben Noordhuis |
unix,win: add uv_available_parallelism() (#3499) Replacement for the usage pattern where people use uv_cpu_info() as an imperfect heuristic for determining the amount of parallelism that
unix,win: add uv_available_parallelism() (#3499) Replacement for the usage pattern where people use uv_cpu_info() as an imperfect heuristic for determining the amount of parallelism that is available to their programs. Fixes #3493.
show more ...
|
c40f8cb9 | 03-Mar-2022 |
ssrlive <30760636+ssrlive@users.noreply.github.com> |
android: fix build error when no ifaddrs.h (#3505) |
83efa3dd | 02-Mar-2022 |
Jameson Nash |
Reland "macos: use posix_spawn instead of fork" (#3257) Fixes: https://github.com/libuv/libuv/issues/3050 Refs: https://github.com/libuv/libuv/issues/3086 Refs: https://github.com/li
Reland "macos: use posix_spawn instead of fork" (#3257) Fixes: https://github.com/libuv/libuv/issues/3050 Refs: https://github.com/libuv/libuv/issues/3086 Refs: https://github.com/libuv/libuv/pull/3064 Refs: https://github.com/libuv/libuv/pull/3107 Refs: https://github.com/libuv/libuv/pull/3064 This reverts commit 217fdf4265589889d00c7c0622fde2710971a020, then fixes several issues with it: * remove error fast-cleanup code that triggers a nodejs bug Refs: https://github.com/libuv/libuv/pull/3107#issuecomment-782482608 * protect posix_spawn from EINTR This is not a documented valid error, but seems to have been observed. * ignore setuid/setgid syscall This kernel function is not permitted unless the process is setuid root, so disable this syscall. Falling back to fork/exec should be okay for the rare cases that the user decides they need to do setuid(getuid()) or setuid(geteuid()) for the child. Refs: https://github.com/libuv/libuv/pull/3107#issuecomment-782482608 * improve posix_spawn path search Ports the improvements in musl back to this function * fix some additional problems and formatting issues We previously might fail to start a watcher, in rare failure cases, resulting in a zombie that we would fail to kill. Also avoid creating the signal-pipe unless required (addresses a review comment from Apple) * fix fd->fd mapping reuse There was a chance that when duplicating the fd's into stdio_count+fd we might be closing a currently opened fd with that value.
show more ...
|
56e27902 | 27-Feb-2022 |
Guilherme Íscaro |
test: use closefd in runner-unix.c (#3497) This commit changes the plain close calls to the closefd function, which will properly check if close() returns an error. |
993e9ebd | 27-Feb-2022 |
David CARLIER |
freebsd: use copy_file_range() in uv_fs_sendfile() (#3496) Use copy_file_range() on FreeBSD 13 and above. |
7ae0c954 | 23-Feb-2022 |
Vittore F. Scolari |
hurd: unbreak build on GNU/Hurd (#3450) The GNU/Hurd platform does not define IP_ADD_SOURCE_MEMBERSHIP, IP_DROP_SOURCE_MEMBERSHIP, MCAST_JOIN_SOURCE_GROUP and MCAST_LEAVE_SOURCE_GROU
hurd: unbreak build on GNU/Hurd (#3450) The GNU/Hurd platform does not define IP_ADD_SOURCE_MEMBERSHIP, IP_DROP_SOURCE_MEMBERSHIP, MCAST_JOIN_SOURCE_GROUP and MCAST_LEAVE_SOURCE_GROUP. Implement a few functions for the GNU/Hurd. Specifically: * uv_resident_set_memory (from Linux) * uv_get_free_memory (from Linux) * uv_get_total_memory (from Linux) * uv_cpu_info (from cygwin) * uv__process_title_cleanup (void) * uv_get_constrained_memory (stub) * Leave proctitle unimplemented on Hurd for now * Implement hurdish uv_exepath * Enable ifaddrs api * Unbreak udp basics * Unbreak futime and lutime on Hurd
show more ...
|
f3e0bffc | 22-Feb-2022 |
Jameson Nash |
core: change uv_get_password uid/gid to unsigned (#3476) Added in https://github.com/libuv/libuv/pull/742, these values are typically defined as unsigned (since Linux 2.4). Only -1 is sp
core: change uv_get_password uid/gid to unsigned (#3476) Added in https://github.com/libuv/libuv/pull/742, these values are typically defined as unsigned (since Linux 2.4). Only -1 is special, representing an invalid id (e.g. see setreuid).
show more ...
|
c2a345fa | 22-Feb-2022 |
wyckster |
doc: checkout -> check out (#3489) "check out" is a verb phrase, but "checkout" is a noun. Since it is being used as a verb, the spelling "check out" is required. |
e0a5f58d | 20-Feb-2022 |
Ben Noordhuis |
test: fix ipc_send_recv_pipe flakiness (#3478) The read callback failed to handle the `nread == 0` case, which is rare to non-existent on the systems we test on but apparently happens of
test: fix ipc_send_recv_pipe flakiness (#3478) The read callback failed to handle the `nread == 0` case, which is rare to non-existent on the systems we test on but apparently happens often enough on Solaris on SPARC to draw attention. Fixes #3469.
show more ...
|
2bc22c40 | 16-Feb-2022 |
Santiago Gimeno |
test: fix flaky udp_mmsg test Take into account that the data may not be already available in the socket causing the `recvmsg()` / `recvmmsg()` calls to return `EAGAIN` or `EWOULDBLO
test: fix flaky udp_mmsg test Take into account that the data may not be already available in the socket causing the `recvmsg()` / `recvmmsg()` calls to return `EAGAIN` or `EWOULDBLOCK`. Fixes: https://github.com/libuv/libuv/issues/3479
show more ...
|
d54c92e3 | 15-Feb-2022 |
Jameson Nash |
win: fix style nits [NFC] (#3474) Internal functions usually have a uv__ prefix. |
d41a9a07 | 15-Feb-2022 |
Ben Noordhuis |
doc: clarify android api level (#3480) Google goes to great lengths to obscure the relationship between the two so explicitly call out the API version matching Android 7.0. |
cc7dbaa3 | 14-Feb-2022 |
Jameson Nash |
fix oopsie from #3466 (#3475) I created `uv__backend_timeout` to be used internally for this reason, then forgot to use it, resulting in flaky tests and excessive trips around the uv
fix oopsie from #3466 (#3475) I created `uv__backend_timeout` to be used internally for this reason, then forgot to use it, resulting in flaky tests and excessive trips around the uv_run loop. Fix #3472
show more ...
|
3b2c25d2 | 14-Feb-2022 |
Jameson Nash |
win,fs: avoid closing an invalid handle (#3473) While usually functional, calling CloseHandle(INVALID_HANDLE_VALUE) can result in debug builds (and/or wine) being unhappy and aborting th
win,fs: avoid closing an invalid handle (#3473) While usually functional, calling CloseHandle(INVALID_HANDLE_VALUE) can result in debug builds (and/or wine) being unhappy and aborting there.
show more ...
|
02094664 | 14-Feb-2022 |
twosee |
win,loop: add missing uv_update_time (#3175) Time of loop should be updated after the IOCP wait. |
722d0030 | 14-Feb-2022 |
Paul Evans |
document the values of enum uv_stdio_flags (#3039) Co-authored-by: Jameson Nash <vtjnash@gmail.com> |
df78de04 | 13-Feb-2022 |
Momtchil Momtchev |
win,fs: consider broken pipe error a normal EOF (#3053) This would later get translated in src/win/error.c this way, which previously could lead to rather confusing and inaccurate error
win,fs: consider broken pipe error a normal EOF (#3053) This would later get translated in src/win/error.c this way, which previously could lead to rather confusing and inaccurate error messages.
show more ...
|
912bb8c5 | 13-Feb-2022 |
Ryan Liptak |
test: fix benchmark-ping-udp (#2817) - Fixes the declaration of the benchmark in benchmark-list.h (it was not previously runnable at all) - Fixes the benchmark itself hanging infin
test: fix benchmark-ping-udp (#2817) - Fixes the declaration of the benchmark in benchmark-list.h (it was not previously runnable at all) - Fixes the benchmark itself hanging infinitely because the data was being dropped via ICMP Destination Unreachable errors (meaning nread was always zero in pinger_read_cb) + The data getting lost was fixed by binding the udp socket - Properly checks for UV_UDP_MMSG_CHUNK, just as an example of what should generally be done (buf_free is actually a no-op as the buf is allocated on the stack)
show more ...
|
8ec1732a | 13-Feb-2022 |
UMU |
build: fix error C4146 on MSVC (#3271) > error C4146: unary minus operator applied to unsigned type, result still unsigned |
636cb863 | 13-Feb-2022 |
Momtchil Momtchev |
bench: add `uv_queue_work` ping-pong measurement (#3425) |
04a35efe | 13-Feb-2022 |
Darshan Sen |
win,errors: remap ERROR_ACCESS_DENIED to UV_EACCES (#3193) If we try to use uv_fs_rmdir on a read-only directory on Windows, it internally calls _wrmdir, which sets _doserrno to ERROR_AC
win,errors: remap ERROR_ACCESS_DENIED to UV_EACCES (#3193) If we try to use uv_fs_rmdir on a read-only directory on Windows, it internally calls _wrmdir, which sets _doserrno to ERROR_ACCESS_DENIED and errno to EACCES. However, ERROR_ACCESS_DENIED is mapped to UV_EPERM, so I believe it should be remapped to UV_EACCES.
show more ...
|
cf7f70c2 | 13-Feb-2022 |
jonilaitinen |
win: restrict system DLL load paths (#3395) Currently `LoadLibraryA` call first attempts to load the given DLL from the application working directory before loading it from the system DL
win: restrict system DLL load paths (#3395) Currently `LoadLibraryA` call first attempts to load the given DLL from the application working directory before loading it from the system DLL path. This may pose a security risk if an attacker is able to place a malicious DLL into the application working directory as that DLL will be loaded instead of the system DLL. This is especially dangerous if the application is running with elevated privileges. This changes the DLL loading to use `LoadLibraryExA` method with `LOAD_LIBRARY_SEARCH_SYSTEM32` flag which restricts the DLL load path to system DLL path, ignoring any DLLs in the application working directory.
show more ...
|