[libvirt] [PATCH 1/4] Make vshDebug work when parsing parameters

Martin Kletzander mkletzan at redhat.com
Fri Mar 15 13:10:08 UTC 2013


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 at 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
> 




More information about the libvir-list mailing list