commit e6359eedfbf497e52d52451072aea4713ed80a88 eliminated a gcc warning that
strncpy could make a string w/out a NUL terminator.
snprintf guarantees NUL-termination (so fixes that possibility).
But, snprintf may discard data to make room for the NUL.
This patch errors straight away in that eventuality.

Signed-off-by: Duncan Roe <duncan_...@optusnet.com.au>
---
 extensions/ebt_string.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/extensions/ebt_string.c b/extensions/ebt_string.c
index 3deff1b..79e24dc 100644
--- a/extensions/ebt_string.c
+++ b/extensions/ebt_string.c
@@ -168,7 +168,9 @@ static int parse(int c, char **argv, int argc, const struct 
ebt_u_entry *entry,
                ebt_check_option2(flags, OPT_STRING_ALGO);
                if (ebt_check_inverse2(optarg))
                        ebt_print_error2("Unexpected `!' after --string-algo");
-               snprintf(info->algo, sizeof(info->algo), "%s", optarg);
+               if (snprintf(info->algo, sizeof(info->algo), "%s", optarg) >=
+                       sizeof(info->algo))
+                       ebt_print_error2("\"%s\" is truncated", info->algo);
                break;
        case STRING_ICASE:
                ebt_check_option2(flags, OPT_STRING_ICASE);
-- 
2.9.0

--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to