From f0fc7cc76760ba4f4346755fe4b7757334b5d3c9 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Mon, 17 Oct 2022 12:18:40 +0200 Subject: [PATCH] vmx: Rework virVMXConfigScanResultsCollector slightly 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 (): 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 Reviewed-by: Tim Wiederhake --- src/vmx/vmx.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c index d3e452e3ef..c2c9095062 100644 --- a/src/vmx/vmx.c +++ b/src/vmx/vmx.c @@ -1324,19 +1324,19 @@ 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 || - *p != '.') { + if (virStrToLong_i(suffix, &p, 10, &idx) < 0 || + *p != '.' || idx < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("failed to parse the index of the VMX key '%s'"), name); return -1; } - if ((int)idx > results->networks_max_index) - results->networks_max_index = (int)idx; + if (idx > results->networks_max_index) + results->networks_max_index = idx; } return 0; -- 2.39.5