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@xxxxxxxxxx> >> --- >> 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list