[libvirt] [PATCH 7/9] remove remainder of offending strerror uses

Jim Meyering jim at meyering.net
Tue Feb 3 15:06:18 UTC 2009


"Daniel P. Berrange" <berrange at redhat.com> wrote:
> On Mon, Feb 02, 2009 at 06:08:20PM +0100, Jim Meyering wrote:
>> From: Jim Meyering <meyering at redhat.com>

Thanks for the review.

>> - err_delbr1:
>> + err_delbr1:;
>> +    char ebuf[1024];
>
> A stray ';'  crept in there.

Actually, it's required by C.
The ";" adds an empty statement before the new declaration,
to serve as a target for the label.

>> diff --git a/src/storage_driver.c b/src/storage_driver.c
>> index a456061..d644b63 100644
>> --- a/src/storage_driver.c
>> +++ b/src/storage_driver.c
>> @@ -1,7 +1,7 @@
>>  /*
>>   * storage_driver.c: core driver for storage APIs
>>   *
>> - * Copyright (C) 2006-2008 Red Hat, Inc.
>> + * Copyright (C) 2006-2009 Red Hat, Inc.
>>   * Copyright (C) 2006-2008 Daniel P. Berrange
>>   *
>>   * This library is free software; you can redistribute it and/or
>> @@ -567,9 +567,10 @@ storagePoolUndefine(virStoragePoolPtr obj) {
>>      if (virStoragePoolObjDeleteDef(obj->conn, pool) < 0)
>>          goto cleanup;
>>
>> +    char ebuf[1024];
>>      if (unlink(pool->autostartLink) < 0 && errno != ENOENT && errno != ENOTDIR)
>>          storageLog("Failed to delete autostart link '%s': %s",
>> -                   pool->autostartLink, strerror(errno));
>> +                   pool->autostartLink, virStrerror(errno, ebuf, sizeof ebuf));
>
> The variable decl should be inside the if () {} clause there.

Oops.  No idea why I did that.
Fixed.

>> @@ -788,29 +789,30 @@ static int umlStartVMDaemon(virConnectPtr conn,
>>          return -1;
>>      }
>>
>> +    char ebuf[1024];
>>      tmp = progenv;
>>      while (*tmp) {
>
> Here, the var decl should be inside the while() loop too

Well, if I move the decl into that first while loop, then I'd have
to add 3 more, one into the next while loop, and then two more,
each into currently-single-stmt if-blocks.  Seems slightly better
to add just that one decl than to add 4.

>> @@ -99,10 +100,12 @@ virUUIDGenerate(unsigned char *uuid)
>>      if (uuid == NULL)
>>          return(-1);
>>
>> +    char ebuf[1024];
>>      if ((err = virUUIDGenerateRandomBytes(uuid, VIR_UUID_BUFLEN)))
>>          qemudLog(QEMUD_WARN,
>>                   _("Falling back to pseudorandom UUID,"
>> -                   " failed to generate random bytes: %s"), strerror(err));
>> +                   " failed to generate random bytes: %s"),
>> +                 virStrerror(err, ebuf, sizeof ebuf));
>>
>>      return virUUIDGeneratePseudoRandomBytes(uuid, VIR_UUID_BUFLEN);
>
> AGain the ebuf needs to move inside the block

Good catch.  Done.




More information about the libvir-list mailing list