On 05/13/2011 04:47 PM, Eric Blake wrote:
On 05/13/2011 02:10 PM, Cole Robinson wrote:
> v2:
> Use virCommand's autocleanup
>
> Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
> ---
> src/openvz/openvz_conf.c | 37 +++++++++--------------------
> src/openvz/openvz_driver.c | 55 +++++++++++++++++++++++--------------------
> 2 files changed, 41 insertions(+), 51 deletions(-)
> @@ -1446,18 +1445,22 @@ static int openvzListDefinedDomains(virConnectPtr conn
ATTRIBUTE_UNUSED,
> }
> got ++;
> }
> - waitpid(pid, NULL, 0);
> +
> + if (virCommandWait(cmd, NULL) < 0)
> + goto out;
> +
> if (VIR_CLOSE(outfd) < 0) {
> virReportSystemError(errno, "%s", _("failed to close
file"));
> goto out;
> }
> - return got;
>
> + rc = got;
> out:
> VIR_FORCE_CLOSE(outfd);
> + virCommandFree(cmd);
> for ( ; got >= 0 ; got--)
> VIR_FREE(names[got]);
Oops, this now frees names[] on success. You need to gate this for loop
on whether rc >= 0, now that the success path falls through to the out
label.
ACK with that nit fixed.
Thanks, pushed with that fix.
- Cole