summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org>2006-02-13 11:44:59 +0000
committer/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org>2006-02-13 11:44:59 +0000
commitd19c6b9af3c40ef7d657d552b4379ebd8a650c39 (patch)
tree4efcff48dcd7e323fa70c6a4265bc68ec2c4551e
parent9fc6212466feffc013a6e423e4db33f4057f7f96 (diff)
nfnl_get_msg_next must check is the message is OK after NLMSG_NEXT
is called. (Pablo Neira)
-rw-r--r--src/libnfnetlink.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libnfnetlink.c b/src/libnfnetlink.c
index 47a95cd..523115e 100644
--- a/src/libnfnetlink.c
+++ b/src/libnfnetlink.c
@@ -861,6 +861,11 @@ struct nlmsghdr *nfnl_get_msg_next(struct nfnl_handle *h,
remain_len = (len - ((unsigned char *)h->last_nlhdr - buf));
nlh = NLMSG_NEXT(h->last_nlhdr, remain_len);
+ if (!NLMSG_OK(nlh, remain_len)) {
+ h->last_nlhdr = NULL;
+ return NULL;
+ }
+
h->last_nlhdr = nlh;
return nlh;