[v1] devargs: fix variadic parsing memory leak
Checks
Commit Message
rte_devargs_parsef will leak memory each time it is called.
The device string must be freed.
Fixes: a23bc2c4e01b ("devargs: add non-variadic parsing function")
CC: stable@dpdk.org
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
lib/librte_eal/common/eal_common_devargs.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
Comments
17/10/2018 16:30, Gaetan Rivet:
> rte_devargs_parsef will leak memory each time it is called.
> The device string must be freed.
>
> Fixes: a23bc2c4e01b ("devargs: add non-variadic parsing function")
> CC: stable@dpdk.org
> Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Applied, thanks
@@ -237,6 +237,7 @@ rte_devargs_parsef(struct rte_devargs *da, const char *format, ...)
va_list ap;
size_t len;
char *dev;
+ int ret;
if (da == NULL)
return -EINVAL;
@@ -255,7 +256,10 @@ rte_devargs_parsef(struct rte_devargs *da, const char *format, ...)
vsnprintf(dev, len + 1, format, ap);
va_end(ap);
- return rte_devargs_parse(da, dev);
+ ret = rte_devargs_parse(da, dev);
+
+ free(dev);
+ return ret;
}
int __rte_experimental