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:
		@@ -169,6 +169,7 @@ cmd_append(struct rk_strpool **cmd, const char *s0, ...)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    va_list ap;
 | 
					    va_list ap;
 | 
				
			||||||
    const char *arg;
 | 
					    const char *arg;
 | 
				
			||||||
 | 
					    int ret = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ((*cmd = rk_strpoolprintf(*cmd, "%s", s0)) == NULL)
 | 
					    if ((*cmd = rk_strpoolprintf(*cmd, "%s", s0)) == NULL)
 | 
				
			||||||
        return ENOMEM;
 | 
					        return ENOMEM;
 | 
				
			||||||
@@ -177,14 +178,21 @@ cmd_append(struct rk_strpool **cmd, const char *s0, ...)
 | 
				
			|||||||
    while ((arg = va_arg(ap, const char *))) {
 | 
					    while ((arg = va_arg(ap, const char *))) {
 | 
				
			||||||
        char *s;
 | 
					        char *s;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ((s = string_encode(arg)) == NULL)
 | 
					        if ((s = string_encode(arg)) == NULL) {
 | 
				
			||||||
            return rk_strpoolfree(*cmd), *cmd = NULL, ENOMEM;
 | 
					            ret = rk_strpoolfree(*cmd), *cmd = NULL, ENOMEM;
 | 
				
			||||||
 | 
						    goto out;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
        *cmd = rk_strpoolprintf(*cmd, "%s", s);
 | 
					        *cmd = rk_strpoolprintf(*cmd, "%s", s);
 | 
				
			||||||
        free(s);
 | 
					        free(s);
 | 
				
			||||||
        if (*cmd == NULL)
 | 
					        if (*cmd == NULL) {
 | 
				
			||||||
            return ENOMEM;
 | 
					            ret = ENOMEM;
 | 
				
			||||||
 | 
						    goto out;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return 0;
 | 
					
 | 
				
			||||||
 | 
					 out:
 | 
				
			||||||
 | 
					    va_end(ap);
 | 
				
			||||||
 | 
					    return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int
 | 
					static int
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user