kdc: cmd_append do not forget va_end()

If va_start() is called then va_end() must be called before
returning.

Change-Id: I5312cf9b6ff238fc76bea248472302d5094bbc2b
This commit is contained in:
Jeffrey Altman
2022-01-17 22:05:36 -05:00
parent d0e2467120
commit 4101280459

View File

@@ -169,6 +169,7 @@ cmd_append(struct rk_strpool **cmd, const char *s0, ...)
{
va_list ap;
const char *arg;
int ret = 0;
if ((*cmd = rk_strpoolprintf(*cmd, "%s", s0)) == NULL)
return ENOMEM;
@@ -177,14 +178,21 @@ cmd_append(struct rk_strpool **cmd, const char *s0, ...)
while ((arg = va_arg(ap, const char *))) {
char *s;
if ((s = string_encode(arg)) == NULL)
return rk_strpoolfree(*cmd), *cmd = NULL, ENOMEM;
if ((s = string_encode(arg)) == NULL) {
ret = rk_strpoolfree(*cmd), *cmd = NULL, ENOMEM;
goto out;
}
*cmd = rk_strpoolprintf(*cmd, "%s", s);
free(s);
if (*cmd == NULL)
return ENOMEM;
if (*cmd == NULL) {
ret = ENOMEM;
goto out;
}
}
return 0;
out:
va_end(ap);
return ret;
}
static int