[PATCH] main: fix get_optstring truncating output

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Without this patch, get_optstring returns optstring = +hvVcf:insNSI:d:aejuy.
After this patch, get_optstring returns optstring = +hvVcf:insNSI:d:aejuypTt

This is due to optstring containing up to two chars per option, thus it was too
short.

Signed-off-by: Michael Braun <michael-dev@xxxxxxxxxxxxx>
---
 src/main.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/main.c b/src/main.c
index d213c601..d830c7a2 100644
--- a/src/main.c
+++ b/src/main.c
@@ -118,7 +118,7 @@ static const struct nft_opt nft_options[] = {
 
 static const char *get_optstring(void)
 {
-	static char optstring[NR_NFT_OPTIONS + 2];
+	static char optstring[2 * NR_NFT_OPTIONS + 2];
 
 	if (!optstring[0]) {
 		size_t i, j;
@@ -128,6 +128,8 @@ static const char *get_optstring(void)
 			j += snprintf(optstring + j, sizeof(optstring) - j, "%c%s",
 				      nft_options[i].val,
 				      nft_options[i].arg ? ":" : "");
+
+		assert(j < sizeof(optstring));
 	}
 	return optstring;
 }
-- 
2.20.1




[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux