mirror of
https://github.com/openbsd/src.git
synced 2026-04-14 17:24:04 +00:00
These programs spin if they receive a RA from the local network with
ND option with length 0. from Daniel Wade ok florian this will be errata 7.7/036_v6daemons.patch and 7.8/030_v6daemons.patch
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* $OpenBSD: engine.c,v 1.99 2024/11/21 13:35:20 claudio Exp $ */
|
||||
/* $OpenBSD: engine.c,v 1.100 2026/04/12 23:57:31 deraadt Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2017 Florian Obser <florian@openbsd.org>
|
||||
@@ -1474,6 +1474,8 @@ parse_ra(struct slaacd_iface *iface, struct imsg_ra *ra)
|
||||
struct in6_addr *in6;
|
||||
int i;
|
||||
|
||||
if (nd_opt_hdr->nd_opt_len == 0)
|
||||
goto err;
|
||||
len -= sizeof(struct nd_opt_hdr);
|
||||
p += sizeof(struct nd_opt_hdr);
|
||||
|
||||
@@ -1760,6 +1762,8 @@ debug_log_ra(struct imsg_ra *ra)
|
||||
struct in6_addr *in6;
|
||||
int i;
|
||||
|
||||
if (nd_opt_hdr->nd_opt_len == 0)
|
||||
return;
|
||||
len -= sizeof(struct nd_opt_hdr);
|
||||
p += sizeof(struct nd_opt_hdr);
|
||||
if (nd_opt_hdr->nd_opt_len * 8 - 2 > len) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $OpenBSD: engine.c,v 1.29 2025/04/27 16:23:04 florian Exp $ */
|
||||
/* $OpenBSD: engine.c,v 1.30 2026/04/12 23:57:27 deraadt Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2018 Florian Obser <florian@openbsd.org>
|
||||
@@ -541,6 +541,8 @@ parse_rs(struct imsg_ra_rs *rs)
|
||||
while ((size_t)len >= sizeof(struct nd_opt_hdr)) {
|
||||
struct nd_opt_hdr *nd_opt_hdr = (struct nd_opt_hdr *)p;
|
||||
|
||||
if (nd_opt_hdr->nd_opt_len == 0)
|
||||
return;
|
||||
len -= sizeof(struct nd_opt_hdr);
|
||||
p += sizeof(struct nd_opt_hdr);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user