[libvirt] [PATCH] esx: Add support for storage volume cloning

Matthias Bolte matthias.bolte at googlemail.com
Tue Dec 14 00:21:45 UTC 2010


2010/12/14 Eric Blake <eblake at redhat.com>:
> On 12/06/2010 01:42 PM, Matthias Bolte wrote:
>> ---
>>  src/esx/esx_storage_driver.c   |  198 +++++++++++++++++++++++++++++++++++++++-
>>  src/esx/esx_vi_generator.input |   11 ++
>>  2 files changed, 208 insertions(+), 1 deletions(-)
>
> ACK. Looks clean; but maybe one suggestion if you want:
>
>> +    char *key = NULL;
>
>> +        if (priv->primary->hasQueryVirtualDiskUuid) {
>> +            if (VIR_ALLOC_N(key, VIR_UUID_STRING_BUFLEN) < 0) {
>> +                virReportOOMError();
>> +                goto cleanup;
>> +            }
>
> VIR_UUID_STRING_BUFLEN is small enough that you can stack-allocate key,
> and avoid one place of malloc() failure:
>
> char key[VIR_UUID_STRING_BUFLEN];
>
> Up to you if you want to make that change, or check in as-is.
>

Yes, if you only look at the if branch then stack allocating the key
makes sense, but when you look at the else branch you'll see that the
key can also be a copy of the datastore path. In that case a stack
allocated key might be a bad idea if the path is longer than
VIR_UUID_STRING_BUFLEN - 1.

Pushing it unchanged. Thanks.

Matthias




More information about the libvir-list mailing list