summaryrefslogtreecommitdiffstats
path: root/src/expr
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2013-07-05 14:00:08 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2013-07-05 14:00:08 +0200
commit2765d8c3f09315766a83acc38a29e7f6a7392128 (patch)
treead7aa22e9ad1127474a5c43fdc95fadaf19976d0 /src/expr
parentf95e8598af7e3a1641166b4e6be31b87d4690326 (diff)
src: expr: data_reg: fix printing data register content
Before: ip filter output 41 [ payload load 1b @ network header + 9 => reg 1 ] [ cmp eq reg 1 ] Now: ip filter output 41 [ payload load 1b @ network header + 9 => reg 1 ] [ cmp eq reg 1 0x00000006 ] ^^^^^^^^^^ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/expr')
-rw-r--r--src/expr/data_reg.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/expr/data_reg.c b/src/expr/data_reg.c
index 316111d..260ae59 100644
--- a/src/expr/data_reg.c
+++ b/src/expr/data_reg.c
@@ -188,7 +188,7 @@ static int nft_data_reg_value_xml_parse(union nft_data_reg *reg, char *xml)
reg->len = tmp;
/* Get and set <dataN> */
- for (i = 0; i < reg->len/sizeof(uint32_t); i++) {
+ for (i = 0; i < div_round_up(reg->len, sizeof(uint32_t)); i++) {
sprintf(node_name, "data%d", i);
node = mxmlFindElement(tree, tree, node_name, NULL,
@@ -261,7 +261,6 @@ nft_data_reg_value_snprintf_json(char *buf, size_t size,
int len = size, offset = 0, ret, i, j;
uint32_t utemp;
uint8_t *tmp;
- int data_len = reg->len/sizeof(uint32_t);
ret = snprintf(buf, len, "\"data_reg\": { \"type\" : \"value\", ");
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
@@ -269,7 +268,7 @@ nft_data_reg_value_snprintf_json(char *buf, size_t size,
ret = snprintf(buf+offset, len, "\"len\" : %zd, ", reg->len);
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
- for (i = 0; i<data_len; i++) {
+ for (i = 0; i < div_round_up(reg->len, sizeof(uint32_t)); i++) {
ret = snprintf(buf+offset, len, "\"data%d\" : \"0x", i);
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
@@ -298,7 +297,6 @@ int nft_data_reg_value_snprintf_xml(char *buf, size_t size,
int len = size, offset = 0, ret, i, j;
uint32_t be;
uint8_t *tmp;
- int data_len = reg->len/sizeof(uint32_t);
ret = snprintf(buf, len, "<data_reg type=\"value\">");
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
@@ -306,7 +304,7 @@ int nft_data_reg_value_snprintf_xml(char *buf, size_t size,
ret = snprintf(buf+offset, len, "<len>%zd</len>", reg->len);
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
- for (i=0; i<data_len; i++) {
+ for (i = 0; i < div_round_up(reg->len, sizeof(uint32_t)); i++) {
ret = snprintf(buf+offset, len, "<data%d>0x", i);
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
@@ -334,7 +332,7 @@ nft_data_reg_value_snprintf_default(char *buf, size_t size,
{
int len = size, offset = 0, ret, i;
- for (i=0; i<reg->len/sizeof(uint32_t); i++) {
+ for (i = 0; i < div_round_up(reg->len, sizeof(uint32_t)); i++) {
ret = snprintf(buf+offset, len, "0x%.8x ", reg->val[i]);
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
}