diff options
| author | Bjoern A. Zeeb <bz@FreeBSD.org> | 2019-11-15 21:44:17 +0000 |
|---|---|---|
| committer | Bjoern A. Zeeb <bz@FreeBSD.org> | 2019-11-15 21:44:17 +0000 |
| commit | 63abacc204f75d91d2a15b07a6d803a69a772697 (patch) | |
| tree | 24cd0e67c14d1dfffbc2bd4b620685c030032cc5 /sys/netinet/ip_carp.c | |
| parent | a61b5cfbbfd54c51c9ba6cc9aa19907911fb3aa9 (diff) | |
Notes
Diffstat (limited to 'sys/netinet/ip_carp.c')
| -rw-r--r-- | sys/netinet/ip_carp.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/netinet/ip_carp.c b/sys/netinet/ip_carp.c index ceccd5a02f3a..d783c93a2abf 100644 --- a/sys/netinet/ip_carp.c +++ b/sys/netinet/ip_carp.c @@ -567,12 +567,13 @@ carp6_input(struct mbuf **mp, int *offp, int proto) /* verify that we have a complete carp packet */ len = m->m_len; - IP6_EXTHDR_GET(ch, struct carp_header *, m, *offp, sizeof(*ch)); - if (ch == NULL) { + m = m_pullup(m, *offp + sizeof(*ch)); + if (m == NULL) { CARPSTATS_INC(carps_badlen); CARP_DEBUG("%s: packet size %u too small\n", __func__, len); return (IPPROTO_DONE); } + ch = (struct carp_header *)(mtod(m, caddr_t) + *offp); /* verify the CARP checksum */ |
