diff --git a/sys/netlink/netlink_io.c b/sys/netlink/netlink_io.c index 9646eb2650d..51c87d22971 100644 --- a/sys/netlink/netlink_io.c +++ b/sys/netlink/netlink_io.c @@ -345,9 +345,11 @@ nl_process_nbuf(struct nl_buf *nb, struct nlpcb *nlp) }; for (; nb->offset + sizeof(struct nlmsghdr) <= nb->datalen;) { + u_int msglen; + hdr = (struct nlmsghdr *)&nb->data[nb->offset]; /* Save length prior to calling handler */ - int msglen = NLMSG_ALIGN(hdr->nlmsg_len); + msglen = NLMSG_ALIGN(hdr->nlmsg_len); NL_LOG(LOG_DEBUG3, "parsing offset %d/%d", nb->offset, nb->datalen); npt_clear(&npt);