diff options
author | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2010-01-24 15:49:16 +0100 |
---|---|---|
committer | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2010-01-24 15:49:16 +0100 |
commit | 584e8d0604a55fcda68848bef82a2954d8af71f5 (patch) | |
tree | aef63f4901d1a68e65d84a23646ac487a809e24f /ipset_ipportnethash.c | |
parent | c896b069e6c9cd229119a791c51d19e8f11c853c (diff) |
New version 4.2 released:v4.2
kernel:
- nethash and ipportnethash types counted every entry twice
which could produce bogus entries when listing/saving these types
of sets (bug reported by Husnu Demir)
userspace:
- Checking null entries when listing/saving hash types of sets
deleted because it's unnecessary and can mask possible errors.
Diffstat (limited to 'ipset_ipportnethash.c')
-rw-r--r-- | ipset_ipportnethash.c | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/ipset_ipportnethash.c b/ipset_ipportnethash.c index 3485711..3a60bf1 100644 --- a/ipset_ipportnethash.c +++ b/ipset_ipportnethash.c @@ -330,15 +330,13 @@ ipportnethash_printips(struct set *set, void *data, u_int32_t len, while (offset < len) { ipptr = data + offset; - if (ipptr->ip || ipptr->ip1) { - ip = (ipptr->ip>>16) + mysetdata->first_ip; - port = (uint16_t) ipptr->ip; - printf("%s,%s,", - ip_tostring(ip, options), - port_tostring(port, options)); - printf("%s\n", - unpack_ip_tostring(ipptr->ip1, options)); - } + ip = (ipptr->ip>>16) + mysetdata->first_ip; + port = (uint16_t) ipptr->ip; + printf("%s,%s,", + ip_tostring(ip, options), + port_tostring(port, options)); + printf("%s\n", + unpack_ip_tostring(ipptr->ip1, options)); offset += IPSET_VALIGN(sizeof(struct ipportip), dont_align); } } @@ -370,15 +368,13 @@ ipportnethash_saveips(struct set *set, void *data, u_int32_t len, while (offset < len) { ipptr = data + offset; - if (ipptr) { - ip = (ipptr->ip>>16) + mysetdata->first_ip; - port = (uint16_t) ipptr->ip; - printf("-A %s %s,%s,", set->name, - ip_tostring(ip, options), - port_tostring(port, options)); - printf("%s\n", - unpack_ip_tostring(ipptr->ip, options)); - } + ip = (ipptr->ip>>16) + mysetdata->first_ip; + port = (uint16_t) ipptr->ip; + printf("-A %s %s,%s,", set->name, + ip_tostring(ip, options), + port_tostring(port, options)); + printf("%s\n", + unpack_ip_tostring(ipptr->ip, options)); offset += IPSET_VALIGN(sizeof(struct ipportip), dont_align); } } |