diff options
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 |
commit | d19c6b9af3c40ef7d657d552b4379ebd8a650c39 (patch) | |
tree | 4efcff48dcd7e323fa70c6a4265bc68ec2c4551e /src | |
parent | 9fc6212466feffc013a6e423e4db33f4057f7f96 (diff) |
nfnl_get_msg_next must check is the message is OK after NLMSG_NEXT
is called. (Pablo Neira)
Diffstat (limited to 'src')
-rw-r--r-- | src/libnfnetlink.c | 5 |
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; |