On Wed, Nov 16, 2022 at 10:11:43 +0100, Michal Privoznik wrote: > The idea here is that virVMXConfigScanResultsCollector() sets the > networks_max_index to the highest ethernet index seen. Well, the > struct member is signed int, we parse just seen index into uint > and then typecast to compare the two. This is not necessary, > because the maximum number of NICs a vSphere domain can have is > (<drumrolll/>): ten [1]. This will fit into signed int easily > anywhere. > > 1: https://configmax.esp.vmware.com/guest?vmwareproduct=vSphere&release=vSphere%208.0&categories=1-0 > > Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> > --- > src/vmx/vmx.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c > index d3e452e3ef..287a877b4a 100644 > --- a/src/vmx/vmx.c > +++ b/src/vmx/vmx.c > @@ -1324,10 +1324,10 @@ virVMXConfigScanResultsCollector(const char* name, > const char *suffix = NULL; > > if ((suffix = STRCASESKIP(name, "ethernet"))) { > - unsigned int idx; > + int idx; > char *p; > > - if (virStrToLong_uip(suffix, &p, 10, &idx) < 0 || > + if (virStrToLong_i(suffix, &p, 10, &idx) < 0 || > *p != '.') { > virReportError(VIR_ERR_INTERNAL_ERROR, > _("failed to parse the index of the VMX key '%s'"), Just a note, because it isn't obvious neiter from the context, nor from the commit message. 'virStrToLong_uip' validates that the parsed number is not negative. Switching to virStrToLong_i allows negative numbers to be considered, but in this case it won't matter too much. We'd just ignore the network device if the index for some reason was -1, and additionally we'd trust any massive positive number anyways.