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