Some memory issues in cli.c have been found by valgrind.
Signed-off-by: Hannes Reinecke <hare@suse.de>
strvec = alloc_strvec(cmd);
if (!strvec)
- return 0;
+ return E_NOMEM;
cmdvec = vector_alloc();
- *v = cmdvec;
if (!cmdvec) {
free_strvec(strvec);
r = E_NOPARM;
goto out;
}
+ *v = cmdvec;
free_strvec(strvec);
return 0;
out:
free_strvec(strvec);
free_keys(cmdvec);
- *v = NULL;
return r;
}
-static int
+static int
fingerprint(vector vec)
{
int i;
r = get_cmdvec(cmd, &cmdvec);
if (r) {
- if (cmdvec)
- free_keys(cmdvec);
*reply = genhelp_handler();
*len = strlen(*reply) + 1;
return 0;
h = find_handler(fingerprint(cmdvec));
- if (!h) {
+ if (!h || !h->fn) {
*reply = genhelp_handler();
*len = strlen(*reply) + 1;
free_keys(cmdvec);