Files
node/doc/api
Christian Aurich 72c1feaf04 quic: reject zero addressLRUSize
SocketAddressLRU::Upsert always inserts an entry before evicting down
to max_size_. With max_size_ == 0, it evicts the entry it just
inserted and then accesses the now-missing key via
map_[address]->second. operator[] recreates the key with a
default-constructed std::list iterator, which is then dereferenced.
This is undefined behavior, observed as a SIGSEGV in Endpoint::Receive
on the first UDP packet accepted by a QuicEndpoint constructed with
{ addressLRUSize: 0 }.

SocketAddressLRU has no useful semantics for a zero-capacity cache,
and Upsert's callers rely on it returning a valid pointer. Reject 0
(and 0n) at the options-parsing boundary instead of changing Upsert's
contract.

Signed-off-by: Christian Aurich <christian.aurichzm@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/65827
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tim Perry <pimterry@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
2026-09-07 23:22:00 +00:00
..
2026-09-05 02:49:04 +00:00
2026-09-03 11:40:52 +02:00
2026-08-01 06:15:08 +00:00
2026-07-18 10:18:51 +00:00
2026-08-29 00:58:18 +02:00
2026-08-31 03:59:10 +00:00
2026-08-30 20:44:06 +02:00
2026-09-03 15:37:21 +00:00
2025-12-16 20:31:28 +00:00
2026-08-22 03:49:24 +00:00
2026-08-26 16:23:36 +02:00
2026-08-28 00:23:11 +00:00
2026-08-03 11:44:23 +00:00
2026-09-07 23:22:00 +00:00
2026-08-26 16:23:36 +02:00
2026-09-07 11:42:09 +00:00
2026-09-02 05:48:32 +00:00
2026-08-26 16:23:36 +02:00