summaryrefslogtreecommitdiffstats
path: root/src/set_elem.c
diff options
context:
space:
mode:
authorArturo Borrero <arturo.borrero.glez@gmail.com>2013-09-26 00:13:08 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2013-09-27 16:02:08 +0200
commita54e60a541f009639d596e1fecaeeab67683d258 (patch)
tree213abd63d64d7e39e5e0d3e0f1f3cca3e8bc1a58 /src/set_elem.c
parent3e40a89d43db8cf6c5947baa7221e57e2b9cf351 (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.c22
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;