[libvirt] [PATCH] openvz: check the exitstatus of vzlist

Laine Stump laine at laine.org
Fri Aug 24 07:09:06 UTC 2012


On 08/24/2012 03:03 AM, Daniel Veillard wrote:
> On Fri, Aug 24, 2012 at 02:07:15AM -0400, Laine Stump wrote:
>> I noticed this while auditing all calls to virCommandRun that request
>> an exit status from virCommandRun. Two functions in the openvz driver
>>
>>   openvzDomainGetBarrierLimit
>>   openvzDomainSetBarrierLimit
>>
>> request an exit status from virCommandRun (thus assuring that
>> virCommandRun won't log any errors just due to a non-0 exit status),
>> but then fail to examine that exit status. This could result in the
>> functions believing that the call to "vzlist" was successful, even
>> though it may have encountered an error.
>> ---
>>  src/openvz/openvz_driver.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c
>> index 8257ed5..a1d3b42 100644
>> --- a/src/openvz/openvz_driver.c
>> +++ b/src/openvz/openvz_driver.c
>> @@ -1707,7 +1707,7 @@ openvzDomainGetBarrierLimit(virDomainPtr domain,
>>      virCommandSetOutputBuffer(cmd, &output);
>>      virCommandAddArgFormat(cmd, "-o%s.b,%s.l", param, param);
>>      virCommandAddArg(cmd, domain->name);
>> -    if (virCommandRun(cmd, &status)) {
>> +    if (virCommandRun(cmd, &status) < 0 || status != 0) {
>>          virReportError(VIR_ERR_OPERATION_FAILED,
>>                         _("Failed to get %s for %s: %d"), param, domain->name,
>>                         status);
>> @@ -1758,7 +1758,7 @@ openvzDomainSetBarrierLimit(virDomainPtr domain,
>>      virCommandAddArgFormat(cmd, "--%s", param);
>>      virCommandAddArgFormat(cmd, "%llu:%llu", barrier, limit);
>>      virCommandAddArg(cmd, "--save");
>> -    if (virCommandRun(cmd, &status)) {
>> +    if (virCommandRun(cmd, &status) < 0 || status != 0) {
>>          virReportError(VIR_ERR_OPERATION_FAILED,
>>                         _("Failed to set %s for %s: %d"), param, domain->name,
>>                         status);
>   ACK, thanks for checking :-)
>
> Daniel
>

Pushed. Thanks!




More information about the libvir-list mailing list