[libvirt] [PATCH 2/2] check whether qemuMonitorJSONHMP() failed

Wen Congyang wency at cn.fujitsu.com
Wed Mar 30 07:38:02 UTC 2011


At 03/29/2011 09:58 PM, Jiri Denemark Write:
> On Tue, Mar 29, 2011 at 17:48:48 +0800, Wen Congyang wrote:
>> diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
>> index eed83f4..647e2bb 100644
>> --- a/src/qemu/qemu_monitor.c
>> +++ b/src/qemu/qemu_monitor.c
>> @@ -906,7 +906,14 @@ int qemuMonitorSetCapabilities(qemuMonitorPtr mon)
>>  
>>      if (mon->json) {
>>          ret = qemuMonitorJSONSetCapabilities(mon);
>> -        mon->json_hmp = qemuMonitorJSONCheckHMP(mon);
>> +        if (ret == 0) {
>> +            mon->json_hmp = qemuMonitorJSONCheckHMP(mon);
>> +            if (mon->json_hmp < 0) {
>> +                /* qemu may quited unexpectedly when we call
>> +                 * qemuMonitorJSONCheckHMP() */
>> +                ret = -1;
>> +            }
>> +        }
> 
> This shouldn't really work since mon->json_hmp is declared as
>     unsigned json_hmp: 1;

Yes, you are right.
Pushed with this fixed. Thanks for reviewing.

> 
> I think we need something like
> 
>     if (ret == 0) {
>         int hmp = qemuMonitorJSONCheckHMP(mon);
>         if (hmp < 0) {
>             ...
>         } else {
>             mon->json_hmp = hmp > 0;
>         }
>     }
> 
> Jirka
> 




More information about the libvir-list mailing list