[Bug 207312] Useless check in netipsec/key.c
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Thu Feb 18 19:35:20 UTC 2016
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=207312
Bug ID: 207312
Summary: Useless check in netipsec/key.c
Product: Base System
Version: 10.2-STABLE
Hardware: Any
OS: Any
Status: New
Keywords: patch
Severity: Affects Only Me
Priority: ---
Component: kern
Assignee: freebsd-bugs at FreeBSD.org
Reporter: mi at FreeBSD.org
CC: ae at FreeBSD.org, sam at FreeBSD.org
Created attachment 167155
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=167155&action=edit
Remove a silly check, const-poison key-handling
The article at
http://www.viva64.com/en/b/0377/
listed a problem with the KAME-derived code: the key_parse() function is
comparing m->m_pkthdr.len with itself. We have this line since 2002, when sam
committed what was than known as FAST_IPSEC option in base r105197.
The original KAME sources (https://github.com/kame/kame/) and NetBSD have this
issue, but I could not find this code in OpenBSD cvs-repo online.
The minimal fix is to simply remove the useless check -- something the compiler
must've been doing automatically ever since:
@@ -7245,9 +7245,8 @@ key_parse(struct mbuf *m, struct socket
orglen = PFKEY_UNUNIT64(msg->sadb_msg_len);
target = KEY_SENDUP_ONE;
- if ((m->m_flags & M_PKTHDR) == 0 ||
- m->m_pkthdr.len != m->m_pkthdr.len) {
- ipseclog((LOG_DEBUG, "%s: invalid message
length.\n",__func__));
+ if ((m->m_flags & M_PKTHDR) == 0) {
+ ipseclog((LOG_DEBUG, "%s: invalid message length.\n",
__func__));
PFKEYSTAT_INC(out_invlen);
error = EINVAL;
goto senderror;
However, the attached patch goes further and adds "const-poisoning" to
functions in netipsec/key.c and netipsec/keysock.c . Please, review.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list