On 03/14/2013 06:15 PM, Daniel P. Berrange wrote:
On Thu, Mar 14, 2013 at 10:27:32AM +0100, Martin Kletzander wrote:
> The vshInit initializes ctl->debug by which vshDebug (which is also
> called in vshParseArgv) decides whether to print out the message or
> not.
>
> Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
> ---
> tools/virsh.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/tools/virsh.c b/tools/virsh.c
> index d822e09..9ed038a 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -3100,15 +3100,13 @@ main(int argc, char **argv)
> ctl->name = vshStrdup(ctl, defaultConn);
> }
>
> - if (!vshParseArgv(ctl, argc, argv)) {
> + if (!vshInit(ctl)) {
> vshDeinit(ctl);
Hmm, we previously called vshDeinit() even though we'd not
got to vshInit yet !
> exit(EXIT_FAILURE);
> }
>
> - if (!vshInit(ctl)) {
> - vshDeinit(ctl);
> + if (!vshParseArgv(ctl, argc, argv))
But here you've lost the vshDeinit now. I think we need to
put that back to keep valgrind happy, don't we ? Or is there
some reason which forced to you drop the vshDeinit here ?
No reason, just my fault. I removed it at first when the vshParseArgv
was before vshInit and then switched those two without adding it back,
thanks for noticing. This is how the patch should've looked like:
diff --git a/tools/virsh.c b/tools/virsh.c
index d822e09..58a604b 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -3100,12 +3100,12 @@ main(int argc, char **argv)
ctl->name = vshStrdup(ctl, defaultConn);
}
- if (!vshParseArgv(ctl, argc, argv)) {
+ if (!vshInit(ctl)) {
vshDeinit(ctl);
exit(EXIT_FAILURE);
}
- if (!vshInit(ctl)) {
+ if (!vshParseArgv(ctl, argc, argv)) {
vshDeinit(ctl);
exit(EXIT_FAILURE);
}
--
> exit(EXIT_FAILURE);
> - }
Regards
Daniel