netlink: Use NLMSG_OK and NLMSG_NEXT macros
This commit is contained in:
parent
08063178fb
commit
f37cf89ccb
2 changed files with 10 additions and 13 deletions
|
@ -48,17 +48,10 @@ try_again:
|
||||||
}
|
}
|
||||||
|
|
||||||
h = (struct nlmsghdr *) buf;
|
h = (struct nlmsghdr *) buf;
|
||||||
while (left >= (int) sizeof(*h)) {
|
while (NLMSG_OK(h, left)) {
|
||||||
int len, plen;
|
int plen;
|
||||||
|
|
||||||
len = h->nlmsg_len;
|
plen = h->nlmsg_len - sizeof(*h);
|
||||||
plen = len - sizeof(*h);
|
|
||||||
if (len > left || plen < 0) {
|
|
||||||
wpa_printf(MSG_DEBUG, "netlnk: Malformed message: "
|
|
||||||
"len=%d left=%d plen=%d",
|
|
||||||
len, left, plen);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (h->nlmsg_type) {
|
switch (h->nlmsg_type) {
|
||||||
case RTM_NEWLINK:
|
case RTM_NEWLINK:
|
||||||
|
@ -73,9 +66,7 @@ try_again:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
len = NLMSG_ALIGN(len);
|
h = NLMSG_NEXT(h, left);
|
||||||
left -= len;
|
|
||||||
h = (struct nlmsghdr *) ((char *) h + len);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (left > 0) {
|
if (left > 0) {
|
||||||
|
|
|
@ -57,6 +57,12 @@
|
||||||
#define NLMSG_LENGTH(len) ((len) + NLMSG_ALIGN(sizeof(struct nlmsghdr)))
|
#define NLMSG_LENGTH(len) ((len) + NLMSG_ALIGN(sizeof(struct nlmsghdr)))
|
||||||
#define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
|
#define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
|
||||||
#define NLMSG_DATA(nlh) ((void*) (((char*) nlh) + NLMSG_LENGTH(0)))
|
#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) >= (int) sizeof(struct nlmsghdr) && \
|
||||||
|
(nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
|
||||||
|
(int) (nlh)->nlmsg_len <= (len))
|
||||||
#define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
|
#define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
|
||||||
|
|
||||||
#define RTA_ALIGNTO 4
|
#define RTA_ALIGNTO 4
|
||||||
|
|
Loading…
Reference in a new issue