diff options
author | Arturo Borrero <arturo.borrero.glez@gmail.com> | 2014-05-06 19:19:46 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2014-05-07 15:38:25 +0200 |
commit | 393854b12be53f686074e55aac598ca0ba13e48f (patch) | |
tree | 7a56f2548a1670662a2ea423bbc95d5ff4799425 /src/expr/data_reg.c | |
parent | b3ddcf9a00f2b1ea6bde4d935b5226eaa792c937 (diff) |
data_reg: fix bad buffer size bounds
These calls need to use the new buffer size, instead of the
size that the buffer originally had.
Bugs introduced by myself at dec68741 [data_reg: fix verdict format approach].
Signed-off-by: Arturo Borrero Gonzalez <arturo.borrero.glez@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/expr/data_reg.c')
-rw-r--r-- | src/expr/data_reg.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/expr/data_reg.c b/src/expr/data_reg.c index 0523cb7..44281f7 100644 --- a/src/expr/data_reg.c +++ b/src/expr/data_reg.c @@ -304,7 +304,7 @@ nft_data_reg_verdict_snprintf_def(char *buf, size_t size, SNPRINTF_BUFFER_SIZE(ret, size, len, offset); if (reg->chain != NULL) { - ret = snprintf(buf+offset, size, "-> %s ", reg->chain); + ret = snprintf(buf+offset, len, "-> %s ", reg->chain); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); } @@ -322,12 +322,12 @@ nft_data_reg_verdict_snprintf_xml(char *buf, size_t size, SNPRINTF_BUFFER_SIZE(ret, size, len, offset); if (reg->chain != NULL) { - ret = snprintf(buf+offset, size, "<chain>%s</chain>", + ret = snprintf(buf+offset, len, "<chain>%s</chain>", reg->chain); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); } - ret = snprintf(buf+offset, size, "</data_reg>"); + ret = snprintf(buf+offset, len, "</data_reg>"); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); return offset; @@ -344,12 +344,12 @@ nft_data_reg_verdict_snprintf_json(char *buf, size_t size, SNPRINTF_BUFFER_SIZE(ret, size, len, offset); if (reg->chain != NULL) { - ret = snprintf(buf+offset, size, ",\"chain\":\"%s\"", + ret = snprintf(buf+offset, len, ",\"chain\":\"%s\"", reg->chain); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); } - ret = snprintf(buf+offset, size, "}"); + ret = snprintf(buf+offset, len, "}"); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); return offset; |