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:
@@ -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) {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user