Commit Graph

5641 Commits

Author SHA1 Message Date
Ben Noordhuis
3d12a590c1
win: remove unnecessary inlining from header file (#4824)
Refs: https://github.com/libuv/libuv/issues/4819
2025-07-06 16:19:36 +02:00
Ben Noordhuis
d67ef2e393
win: move uv__process_reqs to core.c (#4821)
Refs: https://github.com/libuv/libuv/issues/4819
2025-07-06 16:19:18 +02:00
Ben Noordhuis
25f6f84286
win: remove unnecessary inlining from fs.c (#4822)
Refs: https://github.com/libuv/libuv/issues/4819
2025-07-06 15:55:33 +02:00
Ben Noordhuis
aad85404cc
test: pass correct string type to GetModuleHandleW (#4820)
Introduced in commit 2545ffe74 from last month.
2025-07-06 15:39:37 +02:00
Juan José
55f5fce1cc
unix: deduplicate uv_free_interface_addresses (#4818)
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-07-05 13:05:46 +02:00
Juan José
db3d0ff33a
unix: handle possible ENOMEM in uv__pipe_listen (#4817)
Refs: https://github.com/libuv/libuv/issues/4755
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-07-03 21:04:46 +02:00
Ben Noordhuis
8e51d38ab6
win: remove obsolete comment (#4816)
Refs: https://github.com/libuv/libuv/security/advisories/GHSA-qf6p-jg38-9f4x#advisory-comment-131127
2025-07-02 13:58:41 +02:00
Richard Lau
49b6e4db0c mailmap: update email address for Richard Lau 2025-07-01 07:02:49 +02:00
Deep C
04fc1580d4
qnx: add qnx 8 support (#4801)
Fixes: https://github.com/libuv/libuv/issues/4710
2025-06-30 08:26:11 +02:00
chemodax
2545ffe74c
win: replace GetModuleHandleA with GetModuleHandleW (#4812) 2025-06-29 20:32:14 +02:00
Juan José Arboleda
513751e2fc unix: handle possible ENOMEM in uv__tcp_listen
Refs: https://github.com/libuv/libuv/issues/4755
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-06-24 10:50:34 +02:00
chemodax
5f3c0d3d08
win: use WSA_FLAG_NO_HANDLE_INHERIT in WSASocketW (#4810)
Resolves a potential race condition when a child process has been
created between WSASocketW() and SendHandleInformationW().
2025-06-22 23:26:24 +02:00
Ben Noordhuis
0d4f54f0f6
win: handle empty string in uv_get_process_title (#4807)
Distinguish between errors and "the console title is the empty string"
when calling GetConsoleTitle. Both are signified by a return value of
zero.

No test because I couldn't think of a succinct way to programmatically
create a new console window with an empty title.

Fixes: https://github.com/nodejs/node/issues/58695
2025-06-15 13:37:15 +02:00
Juan José
e13e80b20c
include: remove unused macro undefs from uv.h (#4790)
These macros are not defined in the public headers

Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-06-14 22:38:58 +02:00
Juan José
1fbf4f7187
build: make automake link libm on bsd-likes (#4795)
This mirrors the behavior already fixed in the CMake build system.

Fixes: https://github.com/libuv/libuv/issues/4794
Refs: 4681d5d570
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-06-14 22:37:30 +02:00
jhnh204
6a0945b333
src: fix nullptr dereference in uv__print_handles (#4805) 2025-06-14 22:16:20 +02:00
Ben Noordhuis
b00c5d1a09
linux: fix -Wformat-truncation warning (#4793) 2025-05-29 22:11:40 +02:00
Andy Pan
3a9a6e3e6b
tcp: support customizing TCP_KEEPINTVL and TCP_KEEPCNT
Implement `uv_tcp_keepalive_ex` function that extends
`uv_tcp_keepalive` to support `TCP_KEEPINTVL` and `TCP_KEEPCN`
socket options in addition to TCP_KEEPIDLE.
2025-05-21 08:43:53 +02:00
Saúl Ibarra Corretgé
71ec5c0fcd
doc: update ncurses link (#4788)
The link at gnu.org is a redirect now and the docs linter breaks some times.
2025-05-16 09:31:11 -04:00
Juan José
29edf31089
build: dedup sanitizer jobs using matrix strategy (#4776)
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-05-15 09:30:00 +02:00
Ryan Liptak
2b76a4fafa
unix: fix uv_thread_{get,set}priority error codes (#4782)
pthread_getschedparam and pthread_setschedparam do not use errno but
instead return the error code directly.

https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_getschedparam.html

Also include a fix to return UV_ESRCH instead of UV_EBADF on Windows,
like Unix systems do.
2025-05-15 09:16:25 +02:00
Poul T Lomholt
a3b8cb9cc0
doc: don't mention UV_LOOP_ENABLE_IO_URING_SQPOLL (#4786)
The documentation is referring to an internal name -
UV_LOOP_ENABLE_IO_URING_SQPOLL - in several places. Fix this by using
the public UV_LOOP_USE_IO_URING_SQPOLL name instead.
2025-05-15 09:12:36 +02:00
Juan José
8d4218dcd7
test: remove unused include of <limits.h> in runner.h (#4780)
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-05-10 10:04:59 -04:00
Juan José
e4ed92aad7
test: skip udp_multicast_join if not system-wide available (#4779)
Fixes: https://github.com/libuv/libuv/issues/4778

Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-05-08 12:39:26 -04:00
Juan José
a1692f7646
src: remove unused include of <assert.h> in timer.c (#4774)
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-05-02 10:13:07 +02:00
Santiago Gimeno
76fb3b73da
Now working on version 1.51.1 2025-04-25 11:55:04 +02:00
Santiago Gimeno
6c1f9b2fb3 Add SHA to ChangeLog 2025-04-25 11:50:28 +02:00
Santiago Gimeno
5152db2cbf 2025.04.25, Version 1.51.0 (Stable)
Changes since version 1.50.0:

* win: fix leak in uv_os_tmpdir (Saúl Ibarra Corretgé)

* docs: fix RTD build (Saúl Ibarra Corretgé)

* win: lazy-load [GS]etThreadDescription symbols (Ben Noordhuis)

* linux: try preadv64/pwritev64 before preadv/pwritev (Ben Noordhuis)

* win: check cwd length before spawning a child process (Morten
  Engelhardt Olsen)

* macos,bsd: handle missing /dev/null in chroot env (Andrey)

* doc: fix README link text (Julio Jordán)

* win: fix order of FILE_STAT_BASIC_INFORMATION struct fields (Hüseyin
  Açacak)

* macos: increase child process stdio buffer size (Jinho Jang)

* doc: add C3 bindings to LINKS.md (Velikiy Kirill)

* unix: remove unnecessary errno.h include in poll.c (Juan José
  Arboleda)

* win: fix the inconsistency in volume serial number (Hüseyin Açacak)

* unix: add thread affinity support on openharmony (rainlow)

* unix: enable getrusage for SunOS (Paolo Insogna)

* unix,win: accept NAN/INFINITY as file timestamps (Ben Noordhuis)

* win: add ENABLE_VIRTUAL_TERMINAL_INPUT raw tty mode (Anna Henningsen)

* test: handle UV_ENOTSUP in platform_output (cjihrig)

* doc: fix rendering of threading.html (Tobias Nießen)

* unix,sunos: enable use of sendmmsg on Solaris and Illumos (Stacey
  Marshall)

* unix: handle out of memory in iface name copy (Ben Noordhuis)

* openbsd: do not error out if cpuspeed is not available (Robert Nagy)

* test: skip thread_name_threadpool on AIX/IBMi (Abdirahim Musse)

* aix,ibmi: fix undeclared identifiers (Richard Lau)

* unix,sunos: prefer SO_REUSEPORT for load balancing (Stacey Marshall)

* doc: free lib pointer before function return (mugitya03)

* test: link with libm (Juan José Arboleda)

* style: rename parameter to match definition (Mohammed Keyvanzadeh)

* test: support partial output lines in test runner (cjihrig)

* build: switch from c90 to c11 (Ben Noordhuis)

* linux: allow nul bytes in abstract socket address (Itay Bookstein)

* sunos: use pipe2 on solaris and illumos (Andy Pan)

* unix: remove TOCTOU issues from uv_pipe_chmod (Ben Noordhuis)

* unix: use pipe_fname if getsockname returns nothing (crupest)

* haiku: use uint32 instead of uint32_t (AE1020)

* doc: update thread pool stack size comment (Ben Noordhuis)

* unix: improve uv_loop_init OOM handling (Ben Noordhuis)

* test: merge uv_tcp_connect callbacks (Juan José Arboleda)

* test: skip multievent tests on macOS with TSAN enabled (Juan José
  Arboleda)

* linux: align CPU quota calculation with Rust (Juan José Arboleda)

* kqueue: improve fs event watcher OOM handling (Juan José Arboleda)

* sunos: improve fs event watcher OOM handling (Juan José Arboleda)

* build: shorten instructions for cmake build (Juan José Arboleda)
2025-04-25 11:50:27 +02:00
Juan José
eacd6e3c45
build: shorten instructions for cmake build (#4762)
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-04-24 22:53:03 +02:00
Juan José
e6c0007fae
sunos: improve fs event watcher OOM handling (#4759)
Propagate errors from uv__io_init_start() back to the caller.

Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-04-23 23:24:52 +02:00
Juan José
414a5e7333
kqueue: improve fs event watcher OOM handling (#4758)
Propagate errors from uv__io_init_start() back to the caller.

Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-04-23 23:21:37 +02:00
Juan José
69d2dfec14
linux: align CPU quota calculation with Rust (#4746)
Align CPU quota calculation with Rust's cgroup heuristics.

Fixes: https://github.com/libuv/libuv/issues/4740
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-04-22 22:12:30 +02:00
Juan José
47a5c85c4e
test: skip multievent tests on macOS with TSAN enabled (#4763)
Fixes: https://github.com/libuv/libuv/issues/4659
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-04-22 22:09:25 +02:00
Juan José
086da2c458
test: merge uv_tcp_connect callbacks (#4761)
Distinguish a callback for v4 and v6 connections is not relevant for
this test.

Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-04-20 15:17:49 -04:00
Ben Noordhuis
942e1418ea
unix: improve uv_loop_init OOM handling (#4757)
Handle out-of-memory conditions in uv_loop_init better, albeit still
not perfect: bubble up the error instead of aborting.

Also fixes a file descriptor leak on Linux (and likely other platforms)
that the new test caught; the backend epoll fd was being leaked in the
error path.

Fixes: https://github.com/libuv/libuv/issues/4755
2025-04-18 16:23:51 +02:00
Ben Noordhuis
11ecfbad81
doc: update thread pool stack size comment (#4756)
I changed the default stack size in commit 73b0c1f94 from October 2022
and although I added a versionchanged note, I didn't update the blurb
a few lines below.

It wasn't accurate before that change either though, because even with
musl libc's ~80kb thread stacks, 128 threads works out to 10 MB.

Refs: https://github.com/nodejs/node/issues/57911
2025-04-17 19:56:19 +02:00
AE1020
bf6c8870dc
haiku: use uint32 instead of uint32_t (#4754)
Haiku has parallel types to stdint.h, and their APIs use these
types.  In the Haiku-specific haiku.h file, it is passing an
address of a uint32_t to get_cpu_topology_info(), that expects
the other uint32:

  648fa5897c/src/system/libroot/os/system_info.cpp (L187)

You get an "incompatible-pointer-types" warning in gcc if the
warnings are turned up.  But if you pass the pointer to Haiku's
notion of uint32, then the warning goes away.
2025-04-16 14:47:07 +02:00
crupest
bcc799a16e
unix: use pipe_fname if getsockname returns nothing (#4748)
On some platforms (like GNU/Hurd), `getsockname` returns an empty
string for sockets in the UNIX domain. However, we do have stored the
path info in `pipe_fname` of `uv_pipe_t`, so we can try with it
if `getsockname` returns an empty string.
2025-04-08 10:49:34 +02:00
Ben Noordhuis
fc29c125d4
unix: remove TOCTOU issues from uv_pipe_chmod (#4749)
Use fchmod() on platforms that support it on UNIX sockets. Only fall
back to chmod() on platforms that don't (macOS and the BSDs.)

Remove the stat + chmod dance from the fallback and just call chmod
directly, because that's another source of TOCTOU issues.

Fixes: https://github.com/libuv/libuv/issues/2040
2025-04-07 22:34:23 +02:00
Andy Pan
745c68d4ea
sunos: use pipe2 on solaris and illumos (#4747)
Solaris implemented pipe2 in 11.4 and illumos have had it since 2013.

Ref:
https://docs.oracle.com/cd/E88353_01/html/E37841/pipe2-2.html
https://illumos.org/man/2/pipe2
https://www.illumos.org/issues/3714
2025-04-07 09:03:26 +02:00
Itay Bookstein
c1a9f01f22
linux: allow nul bytes in abstract socket address (#4737)
Documentation on Linux explains that nul bytes have no
special significance in abstract namespace socket names.
Avoid precluding such addresses.

Signed-off-by: Itay Bookstein <ibookstein@gmail.com>
2025-03-27 08:48:56 +01:00
Ben Noordhuis
bb706f5fe7
build: switch from c90 to c11 (#4743)
After 14 years that should be fairly safe, right? Right!?

Not safe enough for Windows Server 2016 apparently; there are build
errors coming from system headers. The GHA images are slated for removal
in a month anyway so upgrade them to Windows Server 2025.

Fixes: https://github.com/libuv/libuv/issues/4742
2025-03-24 08:01:25 +01:00
Colin Ihrig
2b96e47f12
test: support partial output lines in test runner (#4744)
This commit updates the test runner's print_lines() logic to
better handle partial lines.
2025-03-24 00:00:22 -04:00
Mohammed Keyvanzadeh
ea1cf034be style: rename parameter to match definition
Rename the `handle` parameter of `timer_close_cb`'s declaration
to `timer` to match the definition.
2025-03-17 22:32:21 +01:00
Juan José
4681d5d570
test: link with libm (#4735)
Fixes: https://github.com/libuv/libuv/issues/4734
Signed-off-by: Juan José Arboleda <soyjuanarbol@gmail.com>
2025-03-11 10:18:24 +01:00
mugitya03
c727be4df9
doc: free lib pointer before function return (#4720)
In function main, the pointer lib allocated at line 7 is passed as an
argument to functions uv_dlopen at line 10, uv_dlerror at lines 11 and
17, and uv_dlsym at line 16, but it is never freed before the function
returns at line 24. This results in a memory leak bug.
2025-03-09 21:47:27 +01:00
Stacey Marshall
98a4bab92a
unix,sunos: prefer SO_REUSEPORT for load balancing (#4733)
Solaris 11.4 has Load Balancing for SO_REUSEPORT, but setting
SO_REUSEADDR disables load balancing.  As per comments in
test/test-udp-reuseport.c prefer SO_REUSEPORT when available.

With these changes in place udp-reuseport testing passes.  BIND (named),
which uses routing sockets which cause ENOPROTOOPT to be returned when
SO_REUSEPORT is requested, also continues to work with the change.

Notes:
- The use of getsockopt() to query if SO_REUSEPORT was available was
  erroneous.
- Selectively limiting SO_REUSEPORT setting to specific types of socket
  was considered but not entertained.
- Oracle will investigate if the setting of SO_REUSEADDR was
  intentionally meant to prevent load balancing.
- Adding a test for routing sockets is left for future work.
2025-03-07 22:22:48 +01:00
Richard Lau
352d992916
aix,ibmi: fix undeclared identifiers (#4730)
Refs: https://github.com/libuv/libuv/pull/4724
2025-03-03 21:08:09 +01:00
Abdirahim Musse
92eacd19a1
test: skip thread_name_threadpool on AIX/IBMi (#4731)
uv_thread_getname is not available on aix and ibm i
Same issue as thread_name test
Refs: https://github.com/libuv/libuv/pull/4599#issuecomment-2498376606
2025-03-03 13:12:48 -05:00
Robert Nagy
545ecf515f
openbsd: do not error out if cpuspeed is not available (#4727)
On OpenBSD we do not know the cpuspeed in same cases (mostly arm64)
and the HW_CPUSPEED sysctl will return EOPNOTSUPP in that case,
which can be ignored because we still need the rest of the CPU
information.
2025-03-03 09:13:29 +01:00