summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorDenys Fedoryshchenko <denys.f@collabora.com>2026-08-10 09:43:09 +0300
committerDenys Fedoryshchenko <denys.f@collabora.com>2026-08-10 09:43:09 +0300
commit7c98f320c3ef7e863a9c7d30bb81735bb4fec46d (patch)
tree53f8852abb971c96dcb03fb16c0eb5dd7ea2fc54 /docs
parentb0e7444cfea168b6b283ca89e00b57494e0bced2 (diff)
downloadaccel-ppp-7c98f320c3ef7e863a9c7d30bb81735bb4fec46d.tar.gz
accel-ppp-7c98f320c3ef7e863a9c7d30bb81735bb4fec46d.zip
dhcpv6: read the elapsed time and preference options at their real width
print_time() read a 32 bit word out of the Elapsed Time option, which RFC 8415 21.9 defines as exactly two octets, and clients include it in almost every message they send. With verbose enabled that is a two byte read past the option on every DHCPv6 transaction: ERROR: AddressSanitizer: heap-buffer-overflow READ of size 4 in print_time dhcpv6_packet.c:499 The value was not byte swapped either, so what got logged was not the elapsed time. Read two octets, convert them, and copy them out rather than dereferencing a pointer into the packet that need not be aligned. print_uint8() has the same shape, so check the length there too before reading the Preference octet.
Diffstat (limited to 'docs')
0 files changed, 0 insertions, 0 deletions