From 384a1bfbad801e87a6c7a6dbf1ccae0f94c1a7aa Mon Sep 17 00:00:00 2001 From: Arturo Borrero Date: Sat, 15 Jun 2013 03:16:03 +0200 Subject: nat: xml: fix wrong offset in snprintf This patch fixes the buffer offset of the nat snprintf function so elements are properly printed. Signed-off-by: Arturo Borrero Gonzalez Signed-off-by: Pablo Neira Ayuso --- src/expr/nat.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/expr/nat.c b/src/expr/nat.c index 1230d8e..6ccdd13 100644 --- a/src/expr/nat.c +++ b/src/expr/nat.c @@ -348,19 +348,21 @@ nft_rule_expr_nat_snprintf_xml(char *buf, size_t size, break; } - ret = snprintf(buf, len, "%s", + ret = snprintf(buf+offset, len, "%s", nat->family == AF_INET ? "AF_INET" : "AF_INET6"); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); if (e->flags & (1 << NFT_EXPR_NAT_REG_ADDR_MIN)) { - ret = snprintf(buf, len, "%u" - " %u ", + ret = snprintf(buf+offset, len, + "%u" + "%u", nat->sreg_addr_min, nat->sreg_addr_max); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); } if (e->flags & (1 << NFT_EXPR_NAT_REG_PROTO_MIN)) { - ret = snprintf(buf, len, "%u" + ret = snprintf(buf+offset, len, + "%u" "%u", nat->sreg_proto_min, nat->sreg_proto_max); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); -- cgit v1.2.3