summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=pablo/emailAddress=pablo@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=pablo/emailAddress=pablo@netfilter.org>2005-10-28 19:25:03 +0000
committer/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=pablo/emailAddress=pablo@netfilter.org </C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=pablo/emailAddress=pablo@netfilter.org>2005-10-28 19:25:03 +0000
commite0fb5af798a1b7723e228ffc7c67e38babc883c6 (patch)
tree88d975a7bcf7068562f39c87d4d1eb2b3ee26a84
parentc7c7bbb573e310ca6fa6040e11f86440c9380ad7 (diff)
Fix alignment issues
-rw-r--r--src/libnetfilter_conntrack.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/libnetfilter_conntrack.c b/src/libnetfilter_conntrack.c
index cbef0db..32a3827 100644
--- a/src/libnetfilter_conntrack.c
+++ b/src/libnetfilter_conntrack.c
@@ -424,9 +424,8 @@ static int nfct_conntrack_netlink_handler(struct nfct_handle *cth,
struct nlmsghdr *nlh, void *arg)
{
struct nfgenmsg *nfmsg;
- int min_len = sizeof(struct nfgenmsg) + sizeof(struct nlmsghdr);
struct nfattr *attr = NFM_NFA(NLMSG_DATA(nlh));
- int attrlen = nlh->nlmsg_len - NLMSG_ALIGN(min_len);
+ int attrlen = NLMSG_LENGTH(nlh->nlmsg_len) - NFNL_HEADER_LEN;
struct nfct_conntrack ct;
unsigned int flags = 0;
int type = NFNL_MSG_TYPE(nlh->nlmsg_type), ret = 0;
@@ -435,7 +434,7 @@ static int nfct_conntrack_netlink_handler(struct nfct_handle *cth,
nfmsg = NLMSG_DATA(nlh);
- if (nlh->nlmsg_len < min_len)
+ if (NLMSG_LENGTH(nlh->nlmsg_len) < NFNL_HEADER_LEN)
return -EINVAL;
while (NFA_OK(attr, attrlen)) {
@@ -666,9 +665,8 @@ static int nfct_expect_netlink_handler(struct nfct_handle *cth,
struct nlmsghdr *nlh, void *arg)
{
struct nfgenmsg *nfmsg;
- int min_len = sizeof(struct nfgenmsg) + sizeof(struct nlmsghdr);
struct nfattr *attr = NFM_NFA(NLMSG_DATA(nlh));
- int attrlen = nlh->nlmsg_len - NLMSG_ALIGN(min_len);
+ int attrlen = NLMSG_LENGTH(nlh->nlmsg_len) - NFNL_HEADER_LEN;
struct nfct_expect exp;
int type = NFNL_MSG_TYPE(nlh->nlmsg_type), ret = 0;
@@ -676,7 +674,7 @@ static int nfct_expect_netlink_handler(struct nfct_handle *cth,
nfmsg = NLMSG_DATA(nlh);
- if (nlh->nlmsg_len < min_len)
+ if (NLMSG_LENGTH(nlh->nlmsg_len) < NFNL_HEADER_LEN)
return -EINVAL;
while (NFA_OK(attr, attrlen)) {