From: Sergey Popovich <popovich_sergei@mail.ru>
To: netfilter-devel@vger.kernel.org
Subject: [PATCH 2/3] ipset: Fix malformed output from list/save for ICMP types in port field.
Date: Thu, 07 Nov 2013 12:56:15 +0200 [thread overview]
Message-ID: <2351390.3tInbbydSl@tuxracer> (raw)
Found with ipset 6.12.1, but upstream version is still affected.
Creating set of dimension three, adding elements to it and then
displaying gives following results:
-----------------------------------
# ipset create test-1 hash:ip,port,ip
# ipset add test-1 192.0.2.1,icmp:echo-request,192.0.2.1
# ipset add test-1 192.0.2.1,icmp:ttl-zero-during-reassembly,192.0.2.1
# ipset list test-1
Name: test-1
Type: hash:ip,port,ip
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 16608
References: 0
Members:
192.0.2.1,icmp:ttl-zero-during-reass,192.0.2.1
192.0.2.1,icmp:echo-re,192.0.2.1
Same results with -output save|xml.
ipset_print_proto_port() from lib/print.c returns incorrect length
of printed string when ICMP/ICMPv6 specified in port field.
Signed-off-by: Sergey Popovich <popovich_sergei@mail.ru>
---
lib/print.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/lib/print.c b/lib/print.c
index abdfd34..6988fdf 100644
--- a/lib/print.c
+++ b/lib/print.c
@@ -709,18 +709,20 @@ ipset_print_proto_port(char *buf, unsigned int len,
case IPPROTO_UDPLITE:
break;
case IPPROTO_ICMP:
- return ipset_print_icmp(buf + offset, len, data,
+ size = ipset_print_icmp(buf + offset, len, data,
IPSET_OPT_PORT, env);
+ goto out;
case IPPROTO_ICMPV6:
- return ipset_print_icmpv6(buf + offset, len, data,
+ size = ipset_print_icmpv6(buf + offset, len, data,
IPSET_OPT_PORT, env);
+ goto out;
default:
break;
}
}
size = ipset_print_port(buf + offset, len, data, IPSET_OPT_PORT, env);
+out:
SNPRINTF_FAILURE(size, len, offset);
-
return offset;
}
--
1.7.10.4
next reply other threads:[~2013-11-07 11:00 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-07 10:56 Sergey Popovich [this message]
2013-11-11 21:35 ` [PATCH 2/3] ipset: Fix malformed output from list/save for ICMP types in port field Jozsef Kadlecsik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2351390.3tInbbydSl@tuxracer \
--to=popovich_sergei@mail.ru \
--cc=netfilter-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.