devargs: fix parsing truncation when using format
authorAndrew Rybchenko <arybchenko@solarflare.com>
Wed, 18 Jul 2018 07:23:30 +0000 (08:23 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 20 Jul 2018 09:17:03 +0000 (11:17 +0200)
Space for string terminating NUL character should be provided to
snprintf() to avoid the last symbol truncation.

Fixes: a23bc2c4e01b ("devargs: add non-variadic parsing function")

Reported-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
lib/librte_eal/common/eal_common_devargs.c

index 1a7b00e..dac2402 100644 (file)
@@ -285,7 +285,7 @@ rte_devargs_parsef(struct rte_devargs *da, const char *format, ...)
        }
 
        va_start(ap, format);
-       vsnprintf(dev, len, format, ap);
+       vsnprintf(dev, len + 1, format, ap);
        va_end(ap);
 
        return rte_devargs_parse(da, dev);