#
9b3b61f6 |
| 05-Aug-2024 |
Matheus Izvekov |
build: ubsan fixes (#4254) MSVC does not actually support ubsan. There is a long-standing ticket requesting this: https://developercommunity.visualstudio.com/t/add-support-for-ubsan/
build: ubsan fixes (#4254) MSVC does not actually support ubsan. There is a long-standing ticket requesting this: https://developercommunity.visualstudio.com/t/add-support-for-ubsan/840750 There are no known compilers that currently accept the `/fsanitize=undefined` spelling. clang-cl accepts `-fsanitize...`, same as regular clang. Also passes no-sanitizer-recover so that tests actually fail. Fix various ubsan-detected errors, including: * win: fix req-inl.h ubsan failure Don't use CONTAINING_RECORD macro from WinSDK, as it doesn't use the right trick which avoids member access on null pointer. Fixes: ``` src/win/req-inl.h:86:10: runtime error: member access within null pointer of type 'uv_req_t' (aka 'struct uv_req_s') SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior D:/a/libuv/libuv/src/win/req-inl.h:86:10 ``` * test: fix ubsan failure on udp_ref3 Don't call functions through different function type. Fixes: ``` src/win/udp.c:537:5: runtime error: call to function req_cb through pointer to incorrect function type 'void (*)(struct uv_udp_send_s *, int)' test\test-ref.c:66: note: req_cb defined here SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/win/udp.c:537:5 in ``` * win: fix process-stdio.c ubsan failure When accessing HANDLEs within the stdio buffer, use memcpy / memset in order to respect alignment. Fixes: ``` src/win/process-stdio.c:197:5: runtime error: store to misaligned address 0x0230ee72d107 for type 'HANDLE' (aka 'void *'), which requires 8 byte alignment 0x0230ee72d107: note: pointer points here 00 00 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd fd fd fd fd ^ SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/win/process-stdio.c:197:5 in ``` * win: fix getaddrinfo.c ubsan failure Reworks buffer alignment handling to respect requirements. Fixes: ``` src/win/getaddrinfo.c:157:23: runtime error: member access within misaligned address 0x0290e4c6a17c for type 'struct addrinfo', which requires 8 byte alignment 0x0290e4c6a17c: note: pointer points here 00 00 00 00 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd ^ SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/win/getaddrinfo.c:157:23 in ``` * win: fix pipe.c ubsan failure Changes "random" representation from pointer to number. Fixes: ``` src/win/pipe.c:234:11: runtime error: applying non-zero offset to non-null pointer 0xffffffffffffffff produced null pointer SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/win/pipe.c:234:11 in ``` * unix: fix stream.c ubsan failure Avoids performing pointer arithmetic on null pointer. Fixes: ``` src/unix/stream.c:701:15: runtime error: applying zero offset to null pointer SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Users/runner/work/libuv/libuv/src/unix/stream.c:701:15 in ```
show more ...
|
#
011a1ac1 |
| 06-Oct-2023 |
Pleuvens |
test: switch to new-style ASSERT_EQ macros (#4159) Switch from old-style ASSERT macro to new-style ASSERT_EQ,... macros. Using new-style macros makes it easier to debug test failure
test: switch to new-style ASSERT_EQ macros (#4159) Switch from old-style ASSERT macro to new-style ASSERT_EQ,... macros. Using new-style macros makes it easier to debug test failures Fixes: https://github.com/libuv/libuv/issues/2974
show more ...
|
#
91a7e498 |
| 12-Mar-2023 |
Trevor Norris |
test: silence more valgrind warnings (#3917) Pass the loop to MAKE_VALGRIND_HAPPY() so it's explicit on which loop needs to be cleaned up. Since it asserts on uv_loop_close(), need to
test: silence more valgrind warnings (#3917) Pass the loop to MAKE_VALGRIND_HAPPY() so it's explicit on which loop needs to be cleaned up. Since it asserts on uv_loop_close(), need to remove a couple of those that were being done before the call. Cleanup where loop was assigned, so the entire test either uses loop or uv_default_loop(). Not both. Also take care of any reqs that may have been left uncleaned.
show more ...
|
Revision tags: v1.41.0 |
|
#
270d0518 |
| 29-Dec-2020 |
tjarlama |
test: move to ASSERT_NULL and ASSERT_NOT_NULL test macros Moving to new style test macros will make debugging easier in case of test failure and improve redability. This commit will repl
test: move to ASSERT_NULL and ASSERT_NOT_NULL test macros Moving to new style test macros will make debugging easier in case of test failure and improve redability. This commit will replace all ASSERT macros matching the statement: `ASSERT(identifier (== or !=) value);` to: `ASSERT_(NOT_)NULL(identifier);` Refs: https://github.com/libuv/libuv/issues/2974 PR-URL: https://github.com/libuv/libuv/pull/3081 Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
show more ...
|
Revision tags: v1.40.0, v1.39.0, v1.38.1, v1.38.0, v1.37.0, v1.36.0, v1.35.0, v1.34.2, v1.34.1, v1.34.0, v1.33.1, v1.33.0, v1.32.0, v1.31.0, v1.30.1, v1.30.0, v1.29.1, v1.29.0, v1.28.0, v1.27.0, v1.26.0, v1.25.0, v1.24.1, v1.24.0, v1.23.2, v1.23.1, v1.23.0, v1.22.0, v1.21.0, v1.20.3, v1.20.2, v1.20.1, v1.20.0, v1.19.2, v1.19.1, v1.19.0, v1.18.0, v1.17.0, v1.16.1, v1.16.0, v1.15.0, v1.14.1, v1.14.0, v1.13.1, v1.13.0, v1.12.0 |
|
#
f4f1f57e |
| 21-Feb-2017 |
Brad King |
test: factor out fsevents skip explanation Factor out a dedicated test macro for use on platforms that do not support fsevents instead of duplicating the os390 platform condition and
test: factor out fsevents skip explanation Factor out a dedicated test macro for use on platforms that do not support fsevents instead of duplicating the os390 platform condition and explanation text. PR-URL: https://github.com/libuv/libuv/pull/1312 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
show more ...
|
Revision tags: v1.11.0, v1.10.2, v1.10.1, v1.10.0 |
|
#
1cff5b75 |
| 05-Jul-2016 |
John Barboza |
zos: add support for new platform - zos: disable test cases not applicable - zos: build options - zos: semaphore implementation - zos: use compare and swap builtins - zos: st
zos: add support for new platform - zos: disable test cases not applicable - zos: build options - zos: semaphore implementation - zos: use compare and swap builtins - zos: struct rusage not the same as other platforms - zos: backlog<=0 produces undefined behaviour Will redefine backlog in the following way * if backlog == 0, set it to 1 * if backlog < 0, set it to SOMAXCONN - zos: define IMAXBEL as empty flag and implement uv__tty_make_raw - zos: use udp multicast operations from aix - zos: ESC in ebcdic - zos: use LIBPATH for dynamic linker path - zos: uv_udp_set_ttl only works for ipv6 - zos: increase pthread stack size by factor of 4 - zos: return ENODEV instead of ENXIO errors for setsockopt - zos: use uv_cond_init the same way as aix - test: enable oob test for zos - zos: return EINVAL for zos error code EOPNOTSUPP PR-URL: https://github.com/libuv/libuv/pull/937 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
show more ...
|
Revision tags: v0.10.37, v1.9.1, v1.9.0, v1.8.0, v1.7.5, v1.7.4, v1.7.3, v1.7.2, v1.7.1, v1.7.0, v1.6.1, v1.6.0, v1.5.0, v0.10.36, v1.4.2, v0.10.35, v1.4.1, v0.10.34, v1.4.0, v1.3.0, v0.10.33, v1.2.1, v1.2.0, v0.10.32, v1.1.0, v0.10.31, v1.0.2, v0.10.30, v1.0.1, v1.0.0, v0.10.29, v1.0.0-rc2, v1.0.0-rc1, v0.11.29, v0.11.28, v0.11.27, v0.10.28, v0.11.26, v0.10.27, v0.11.25, v0.11.24, v0.11.23, v0.10.26, v0.11.22 |
|
#
db2a9072 |
| 10-Mar-2014 |
Saúl Ibarra Corretgé |
unix, windows: removed unused status parameter async, timer, prepare, idle and check handles don't need the status parameter. |
Revision tags: v0.11.21, v0.11.20, v0.10.25, v0.11.19, v0.10.24, v0.11.18, v0.10.23, v0.10.22, v0.11.17, v0.10.21, v0.11.16, v0.10.20, v0.11.15, v0.10.19, v0.11.14, v0.10.18, v0.10.17 |
|
#
9d44d786 |
| 23-Sep-2013 |
Saúl Ibarra Corretgé |
unix, windows: add uv_fs_event_start/stop functions Make uv_fs_event behave like other handles, that is, it's inactive after init, and it's active between start and stop. |
Revision tags: v0.10.16, v0.11.13 |
|
#
08c6ddee |
| 03-Sep-2013 |
Ben Noordhuis |
include: merge uv_udp_send and uv_udp_send6 Merge uv_udp_send6() into uv_udp_send(). uv_udp_send() now takes a const struct sockaddr*. |
#
bcee403e |
| 03-Sep-2013 |
Ben Noordhuis |
include: merge uv_udp_bind and uv_udp_bind6 Merge uv_udp_bind6() into uv_udp_bind(). uv_udp_bind() now takes a const struct sockaddr*. |
#
5c675c4a |
| 03-Sep-2013 |
Ben Noordhuis |
include: merge uv_tcp_connect and uv_tcp_connect6 Merge uv_tcp_connect6() into uv_tcp_connect(). uv_tcp_connect() now takes a const struct sockaddr*. |
Revision tags: v0.11.12 |
|
#
8c6ea105 |
| 01-Sep-2013 |
Ben Noordhuis |
include: uv_spawn takes const uv_process_options_t* Passing or returning structs as values makes life hard for people that work with libuv through a foreign function interface. Switch to
include: uv_spawn takes const uv_process_options_t* Passing or returning structs as values makes life hard for people that work with libuv through a foreign function interface. Switch to a pointer-based approach. Fixes #684.
show more ...
|
#
263da519 |
| 31-Aug-2013 |
Ben Noordhuis |
include: uv_udp_send{6} now takes sockaddr_in* Passing or returning structs as values makes life hard for people that work with libuv through a foreign function interface. Switch to a
include: uv_udp_send{6} now takes sockaddr_in* Passing or returning structs as values makes life hard for people that work with libuv through a foreign function interface. Switch to a pointer-based approach. Fixes #684.
show more ...
|
#
525dbb5e |
| 31-Aug-2013 |
Ben Noordhuis |
include: uv_udp_bind{6} now takes sockaddr_in* Passing or returning structs as values makes life hard for people that work with libuv through a foreign function interface. Switch to a
include: uv_udp_bind{6} now takes sockaddr_in* Passing or returning structs as values makes life hard for people that work with libuv through a foreign function interface. Switch to a pointer-based approach. Fixes #684.
show more ...
|
#
255671da |
| 31-Aug-2013 |
Ben Noordhuis |
include: uv_tcp_connect{6} now takes sockaddr_in* Passing or returning structs as values makes life hard for people that work with libuv through a foreign function interface. Switch to a
include: uv_tcp_connect{6} now takes sockaddr_in* Passing or returning structs as values makes life hard for people that work with libuv through a foreign function interface. Switch to a pointer-based approach. Fixes #684.
show more ...
|
#
81840768 |
| 31-Aug-2013 |
Ben Noordhuis |
include: uv_ip[46]_addr now takes sockaddr_in* Passing or returning structs as values makes life hard for people that work with libuv through a foreign function interface. Switch to a
include: uv_ip[46]_addr now takes sockaddr_in* Passing or returning structs as values makes life hard for people that work with libuv through a foreign function interface. Switch to a pointer-based approach. Fixes #684.
show more ...
|
Revision tags: v0.11.11, v0.11.10, v0.10.15, v0.11.9, v0.10.14, v0.11.8, v0.11.7, v0.10.13, v0.11.6, v0.10.12, v0.11.5, v0.10.11, v0.10.10, v0.11.4, v0.10.9, v0.10.8, v0.11.3, v0.10.7, v0.10.6, v0.11.2, v0.10.5 |
|
#
a92b66fe |
| 16-Apr-2013 |
Saúl Ibarra Corretgé |
unix, windows: add uv_has_ref() function |
Revision tags: v0.10.4, v0.11.1, node-v0.11.0, v0.10.2, node-v0.7.3, node-v0.7.7, node-v0.7.5, node-v0.5.3, node-v0.10.1, node-v0.10.0, node-v0.9.12, node-v0.9.11, node-v0.8.21, node-v0.8.19, node-v0.9.10, node-v0.9.7 |
|
#
4ba03ddd |
| 16-Jan-2013 |
Ben Noordhuis |
unix, windows: rename uv_run2 to uv_run This changes the prototype of uv_run() from: int uv_run(uv_loop_t* loop); To: int uv_run(uv_loop_t* loop, uv_run_mode m
unix, windows: rename uv_run2 to uv_run This changes the prototype of uv_run() from: int uv_run(uv_loop_t* loop); To: int uv_run(uv_loop_t* loop, uv_run_mode mode); Where `mode` is UV_RUN_DEFAULT, UV_RUN_ONCE or UV_RUN_NOWAIT. Fixes #683.
show more ...
|
Revision tags: node-v0.9.6 |
|
#
fb725c08 |
| 06-Jan-2013 |
Ben Noordhuis |
test: simplify tcp_ref2b Said test doesn't need its own close callback, it can piggyback on the common close callback. |
#
7ff6f29b |
| 06-Jan-2013 |
Ben Noordhuis |
test, bench: ANSI-fy function prototypes Replace `void f()` with `void f(void)`; the former means "a function that takes any number of arguments, including none" while the latter is
test, bench: ANSI-fy function prototypes Replace `void f()` with `void f(void)`; the former means "a function that takes any number of arguments, including none" while the latter is what is actually intended: a function taking no arguments. The first form also isn't strictly conforming ANSI/ISO C.
show more ...
|
Revision tags: node-v0.9.4, node-v0.8.17 |
|
#
33d5c497 |
| 29-Nov-2012 |
Saúl Ibarra Corretgé |
prepare/idle/check: don't allow NULL callback |
#
149b16f1 |
| 25-Oct-2012 |
Bert Belder |
windows: closing handles should always keep the loop alive This makes the tcp-ref2 and udp-ref2 tests pass again. Also adds another reference count test. |
Revision tags: node-v0.8.15, node-v0.9.3 |
|
#
47eb0349 |
| 16-Oct-2012 |
Bert Belder |
test: move loop cleanup code to the individual tests |
Revision tags: node-v0.8.12 |
|
#
678e95a4 |
| 01-Oct-2012 |
Ben Noordhuis |
test: close handle in ref tests Everything that gets reported by valgrind now is an actual memory leak. |
Revision tags: node-v0.8.10, node-v0.9.2, node-v0.8.9, node-v0.9.1, node-v0.8.8, node-v0.8.7, node-v0.8.6, node-v0.8.5, node-v0.6.21, node-v0.8.3, node-v0.9.0, node-v0.8.2, node-v0.8.1, node-v0.8.0, node-v0.7.12, node-v0.7.11 |
|
#
cc7c8542 |
| 14-Jun-2012 |
Ben Noordhuis |
unix, windows: add stat() based file watcher Monitors a file path for changes. Supersedes ev_stat. |