[libvirt] [PATCH] Generate RFC4122 compliant UUIDs
Eric Blake
eblake at redhat.com
Mon Apr 8 17:51:57 UTC 2013
On 04/08/2013 10:45 AM, Daniel P. Berrange wrote:
> On Mon, Apr 08, 2013 at 12:35:40PM -0400, Milos Vyletel wrote:
>> Even though http://libvirt.org/formatdomain.html#elementsMetadata
>> states that it requires RFC4122 compliance UUIDs that are generated
>> by virUUIDGenerate() are not. Neither does virUUIDIsValid() check
>> for RFC4122 compliance. Following patch modifies virUUIDGenerate()
>> to generate valid UUIDs and adds check to virUUIDIsValid() to validate
>> UUIDs.
>>
>>
>> + /*
>> + * RFC4122 defines version 1 to 5 (section 4.1.3)
>> + * RFC4122 defined variant is desribed in section 4.1.1
>> + */
>> + version = (uuid[6] >> 4);
>> + variant = (uuid[8] >> 6);
>> + if (!(version > 0 && version <= 5) || variant != 2)
>> + return 0;
>> +
>> c = uuid[0];
>>
>> for (i = 1; i < VIR_UUID_BUFLEN; i++)
>
> but NACk to this part
>
> What you're checking here is just one possible valid scheme for UUIDs.
> We shouldn't reject UUIDs just because they use a different scheme than
> the one we do.
Furthermore, if we took this hunk, but a user is running a guest created
by a previous version of libvirt that happened to generate an invalid
UUID, we would lose the ability to manage that older guest. It _might_
be appropriate to warn the user when a UUID is not valid according to
the schemes we recognize, but it must be a warning and not a fatal
error; furthermore, if we do add such a warning, we'd need to recognize
ALL of the schemes that are valid in the RFCs, not just the particular
scheme we use when generating a uuid ourselves, so as to minimize false
negative printouts of the warning.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130408/eae7acac/attachment-0001.sig>
More information about the libvir-list
mailing list