
On 03/15/2011 08:32 AM, Daniel P. Berrange wrote:
The virCommandNewArgs() method would free the virCommandPtr if it failed to add the args. This meant errors reported in virCommandAddArgSet() were lost. Simply removing the check for errors from the constructor means they can be reported correctly later
The virCommandAddEnvPassCommon() method failed to check for errors before reallocating the cmd->env array, causing a potential SEGV if cmd was NULL
The virCommandAddArgSet() method needs to validate that at least 1 element in 'val's parameter is non-NULL, otherwise code like
cmd = virCommandNew(binary) virCommandAddAtg(cmd, "foo")
Would end up trying todo execve("foo"), if binary was NULL. --- src/util/command.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-)
Those all make sense to me. ACK.