The pointer set by strdup() needs to be cleared on failure to avoid a potential double-free from the caller.
Found with clang static analysis: lib/librte_eal/common/eal_common_devargs.c:123:2: warning: Attempt to free released memory free(buf); ^~~~~~~~~ Fixes: 3fe2e5fec82b ("eal: fix argument parsing check") Signed-off-by: Emmanuel Roullit <emmanuel.roul...@gmail.com> --- lib/librte_eal/common/eal_common_devargs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/librte_eal/common/eal_common_devargs.c b/lib/librte_eal/common/eal_common_devargs.c index e403717be..ffa8ad96f 100644 --- a/lib/librte_eal/common/eal_common_devargs.c +++ b/lib/librte_eal/common/eal_common_devargs.c @@ -72,6 +72,7 @@ rte_eal_parse_devargs_str(const char *devargs_str, if (*drvargs == NULL) { free(*drvname); + *drvname = NULL; return -1; } return 0; -- 2.11.0