1
0
mirror of https://github.com/openbsd/src.git synced 2026-04-15 01:34:03 +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:
deraadt
2026-04-12 23:57:27 +00:00
parent ccd7c26414
commit 086c5738bc
2 changed files with 8 additions and 2 deletions

View File

@@ -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> * 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; struct in6_addr *in6;
int i; int i;
if (nd_opt_hdr->nd_opt_len == 0)
goto err;
len -= sizeof(struct nd_opt_hdr); len -= sizeof(struct nd_opt_hdr);
p += 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; struct in6_addr *in6;
int i; int i;
if (nd_opt_hdr->nd_opt_len == 0)
return;
len -= sizeof(struct nd_opt_hdr); len -= sizeof(struct nd_opt_hdr);
p += sizeof(struct nd_opt_hdr); p += sizeof(struct nd_opt_hdr);
if (nd_opt_hdr->nd_opt_len * 8 - 2 > len) { if (nd_opt_hdr->nd_opt_len * 8 - 2 > len) {

View File

@@ -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> * 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)) { while ((size_t)len >= sizeof(struct nd_opt_hdr)) {
struct nd_opt_hdr *nd_opt_hdr = (struct nd_opt_hdr *)p; 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); len -= sizeof(struct nd_opt_hdr);
p += sizeof(struct nd_opt_hdr); p += sizeof(struct nd_opt_hdr);