parse_cmd() wasn't checking if genhelp_handler() returned NULL. It was simply assuming that it got a string. On NULL, it now returns an error. Found by Coverity. Signed-off-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx> --- multipathd/cli.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/multipathd/cli.c b/multipathd/cli.c index ca176a99..17795b61 100644 --- a/multipathd/cli.c +++ b/multipathd/cli.c @@ -467,6 +467,8 @@ parse_cmd (char * cmd, char ** reply, int * len, void * data, int timeout ) if (r) { *reply = genhelp_handler(cmd, r); + if (*reply == NULL) + return EINVAL; *len = strlen(*reply) + 1; return 0; } @@ -474,9 +476,11 @@ parse_cmd (char * cmd, char ** reply, int * len, void * data, int timeout ) h = find_handler(fingerprint(cmdvec)); if (!h || !h->fn) { + free_keys(cmdvec); *reply = genhelp_handler(cmd, EINVAL); + if (*reply == NULL) + return EINVAL; *len = strlen(*reply) + 1; - free_keys(cmdvec); return 0; } -- 2.17.2 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel