diff options
author | Gleb Smirnoff <glebius@FreeBSD.org> | 2025-01-11 04:57:55 +0000 |
---|---|---|
committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2025-01-11 04:57:55 +0000 |
commit | bbe6559cf958a9016cb18ff1833ebd3a884f349f (patch) | |
tree | fe99f37c7adece0b1e26483423e874ab107de3bf | |
parent | 8a8d095718cb4e3ce84bef1cd61c20b518b8d047 (diff) |
netlink: fix size comparison
We want to check the size of the header, not a pointer to it.
Reviewed by: melifaro, markj
Differential Revision: https://reviews.freebsd.org/D48309
-rw-r--r-- | sys/netlink/netlink_generic.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netlink/netlink_generic.c b/sys/netlink/netlink_generic.c index 623531492173..b78ab80ab3c2 100644 --- a/sys/netlink/netlink_generic.c +++ b/sys/netlink/netlink_generic.c @@ -67,7 +67,8 @@ genl_handle_message(struct nlmsghdr *hdr, struct nl_pstate *npt) return (ENOTSUP); } - if (__predict_false(hdr->nlmsg_len < sizeof(hdr) + GENL_HDRLEN)) { + if (__predict_false(hdr->nlmsg_len < sizeof(struct nlmsghdr) + + GENL_HDRLEN)) { NLP_LOG(LOG_DEBUG, nlp, "invalid message size: %d", hdr->nlmsg_len); return (EINVAL); } |