[libvirt] [PATCH 2/2] viriscsi: Request more random bits for interface name

Michal Privoznik mprivozn at redhat.com
Thu Aug 2 07:27:17 UTC 2018


On 08/01/2018 04:48 PM, Eric Blake wrote:
> On 08/01/2018 06:44 AM, Michal Privoznik wrote:
>> In virStorageBackendCreateIfaceIQN() the virRandomBits() is
>> called in order to use random bits to generate random name for
>> new interface. However, virAsprintf() is expecting 32 bits and we
>> are requesting only 30.
>>
>> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>> ---
>>   src/util/viriscsi.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/util/viriscsi.c b/src/util/viriscsi.c
>> index 653b4fd932..f00aeb53a7 100644
>> --- a/src/util/viriscsi.c
>> +++ b/src/util/viriscsi.c
>> @@ -221,7 +221,7 @@ virStorageBackendCreateIfaceIQN(const char
>> *initiatoriqn,
>>         if (virAsprintf(&temp_ifacename,
>>                       "libvirt-iface-%08llx",
>> -                    (unsigned long long)virRandomBits(30)) < 0)
>> +                    (unsigned long long)virRandomBits(32)) < 0)
> 
> Are we sure that this wasn't intentional that the 2 most significant
> bits are supposed to be zero (to avoid broadcast interface addresses, ro
> example)?  

Yes we are. The random bits are used only for generating a name, not an
address. The iSCSI interfaces we use here are in fact just a separate
iSCSI connection, not real NICs. It's just bad naming on iSCSI side, but
we are already used to that (initiator/target vs client/server), aren't we?

Michal




More information about the libvir-list mailing list