diff options
author | Arturo Borrero <arturo.borrero.glez@gmail.com> | 2013-09-26 00:13:08 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-09-27 16:02:08 +0200 |
commit | a54e60a541f009639d596e1fecaeeab67683d258 (patch) | |
tree | 213abd63d64d7e39e5e0d3e0f1f3cca3e8bc1a58 /src/set_elem.c | |
parent | 3e40a89d43db8cf6c5947baa7221e57e2b9cf351 (diff) |
src: snprintf: fix buffer lengths
Use 'len' instead of 'size' since we need the remaining unused bytes
in the buffer, not its total size.
Signed-off-by: Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/set_elem.c')
-rw-r--r-- | src/set_elem.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/set_elem.c b/src/set_elem.c index 885893b..ba24c96 100644 --- a/src/set_elem.c +++ b/src/set_elem.c @@ -454,17 +454,17 @@ static int nft_set_elem_snprintf_json(char *buf, size_t size, { int ret, len = size, offset = 0, type = -1; - ret = snprintf(buf, size, "\"flags\": %u", e->set_elem_flags); + ret = snprintf(buf, len, "\"flags\": %u", e->set_elem_flags); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - ret = snprintf(buf+offset, size, ",\"key\": {"); + ret = snprintf(buf+offset, len, ",\"key\": {"); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); ret = nft_data_reg_snprintf(buf+offset, len, &e->key, NFT_RULE_O_JSON, flags, DATA_VALUE); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - ret = snprintf(buf+offset, size, "}"); + ret = snprintf(buf+offset, len, "}"); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); if (e->flags & (1 << NFT_SET_ELEM_ATTR_DATA)) @@ -475,14 +475,14 @@ static int nft_set_elem_snprintf_json(char *buf, size_t size, type = DATA_VERDICT; if (type != -1) { - ret = snprintf(buf+offset, size, ",\"data\": {"); + ret = snprintf(buf+offset, len, ",\"data\": {"); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); ret = nft_data_reg_snprintf(buf+offset, len, &e->data, NFT_RULE_O_JSON, flags, type); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - ret = snprintf(buf+offset, size, "}"); + ret = snprintf(buf+offset, len, "}"); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); } @@ -494,7 +494,7 @@ static int nft_set_elem_snprintf_default(char *buf, size_t size, { int ret, len = size, offset = 0, i; - ret = snprintf(buf, size, "element "); + ret = snprintf(buf, len, "element "); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); for (i = 0; i < div_round_up(e->key.len, sizeof(uint32_t)); i++) { @@ -502,7 +502,7 @@ static int nft_set_elem_snprintf_default(char *buf, size_t size, SNPRINTF_BUFFER_SIZE(ret, size, len, offset); } - ret = snprintf(buf+offset, size, " : "); + ret = snprintf(buf+offset, len, " : "); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); for (i = 0; i < div_round_up(e->data.len, sizeof(uint32_t)); i++) { @@ -530,7 +530,7 @@ static int nft_set_elem_snprintf_xml(char *buf, size_t size, NFT_RULE_O_XML, flags, DATA_VALUE); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - ret = snprintf(buf+offset, size, "</key>"); + ret = snprintf(buf+offset, len, "</key>"); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); if (e->flags & (1 << NFT_SET_ELEM_ATTR_DATA)) @@ -541,18 +541,18 @@ static int nft_set_elem_snprintf_xml(char *buf, size_t size, type = DATA_VERDICT; if (type != DATA_NONE) { - ret = snprintf(buf+offset, size, "<data>"); + ret = snprintf(buf+offset, len, "<data>"); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); ret = nft_data_reg_snprintf(buf+offset, len, &e->data, NFT_RULE_O_XML, flags, type); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - ret = snprintf(buf+offset, size, "</data>"); + ret = snprintf(buf+offset, len, "</data>"); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); } - ret = snprintf(buf+offset, size, "</set_elem>"); + ret = snprintf(buf+offset, len, "</set_elem>"); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); return offset; |