From 1f0aa8e3fe218276c64d7412b6053069bf789155 Mon Sep 17 00:00:00 2001 From: Arturo Borrero Gonzalez Date: Wed, 26 Jun 2013 13:37:12 +0200 Subject: data_reg: xml: fix len node, it should show byte length Previous to this patch, the node was 'how many nodes we have'. However, the node means 'how many bytes are in nodes'. Signed-off-by: Arturo Borrero Gonzalez Signed-off-by: Pablo Neira Ayuso --- src/expr/data_reg.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/expr/data_reg.c b/src/expr/data_reg.c index 5eb7f38..b8b8d66 100644 --- a/src/expr/data_reg.c +++ b/src/expr/data_reg.c @@ -132,7 +132,7 @@ static int nft_data_reg_value_xml_parse(union nft_data_reg *reg, char *xml) { mxml_node_t *tree = NULL; mxml_node_t *node = NULL; - int i, len; + int i; int64_t tmp; uint64_t utmp; char *endptr; @@ -152,7 +152,7 @@ static int nft_data_reg_value_xml_parse(union nft_data_reg *reg, char *xml) /* * - * 4 + * 16 * 0xc09a002a * 0x2700cac1 * 0x00000000 @@ -183,11 +183,11 @@ static int nft_data_reg_value_xml_parse(union nft_data_reg *reg, char *xml) mxmlDelete(tree); return -1; } - /* maybe also (len < 1 || len > 4) */ - len = tmp; + + reg->len = tmp; /* Get and set */ - for (i = 0; i < len; i++) { + for (i = 0; i < reg->len/sizeof(uint32_t); i++) { sprintf(node_name, "data%d", i); node = mxmlFindElement(tree, tree, node_name, NULL, @@ -205,7 +205,6 @@ static int nft_data_reg_value_xml_parse(union nft_data_reg *reg, char *xml) reg->val[i] = utmp; } - reg->len = sizeof(reg->val); mxmlDelete(tree); return 0; @@ -265,7 +264,7 @@ int nft_data_reg_value_snprintf_xml(char *buf, size_t size, ret = snprintf(buf, len, ""); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - ret = snprintf(buf+offset, len, "%d", data_len); + ret = snprintf(buf+offset, len, "%zd", reg->len); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); for (i=0; i