--- linux-2.4.0-test7/include/linux/netlink.h-test7 Fri Aug 28 04:33:08 1998 +++ linux-2.4.0-test7/include/linux/netlink.h Thu Aug 31 16:07:25 2000 @@ -64,8 +64,9 @@ #define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0))) #define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \ (struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len))) -#define NLMSG_OK(nlh,len) ((len) > 0 && (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \ - (nlh)->nlmsg_len <= (len)) +#define NLMSG_OK(nlh,len) ((len) >= (long) NLMSG_LENGTH(0) \ + && (nlh)->nlmsg_len >= NLMSG_LENGTH(0) \ + && (len) + 0ul >= NLMSG_ALIGN((nlh)->nlmsg_len)) #define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len))) #define NLMSG_NOOP 0x1 /* Nothing. */