[PATCH 01/24] virStringParseVersion: Parse into 'unsigned long long'

Peter Krempa pkrempa at redhat.com
Thu Mar 16 16:11:30 UTC 2023


Phase out 'unsigned long'

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/bhyve/bhyve_driver.c          | 5 ++++-
 src/ch/ch_conf.c                  | 2 +-
 src/esx/esx_vi.h                  | 4 ++--
 src/lxc/lxc_driver.c              | 5 ++++-
 src/network/bridge_driver_linux.c | 2 +-
 src/openvz/openvz_conf.c          | 2 +-
 src/util/virdnsmasq.c             | 4 ++--
 src/util/virfirewalld.c           | 4 ++--
 src/util/virfirewalld.h           | 2 +-
 src/util/virstring.c              | 4 ++--
 src/util/virstring.h              | 2 +-
 src/vbox/vbox_common.c            | 5 ++++-
 src/vmware/vmware_conf.c          | 5 ++++-
 src/vz/vz_utils.c                 | 5 ++++-
 tests/testutilsqemu.c             | 4 ++--
 tests/utiltest.c                  | 8 ++++----
 tools/virt-host-validate-common.c | 2 +-
 17 files changed, 40 insertions(+), 25 deletions(-)

diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index e7d9c2adf3..e948f890b9 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -248,6 +248,7 @@ bhyveConnectGetSysinfo(virConnectPtr conn, unsigned int flags)
 static int
 bhyveConnectGetVersion(virConnectPtr conn, unsigned long *version)
 {
+    unsigned long long tmpver;
     struct utsname ver;

     if (virConnectGetVersionEnsureACL(conn) < 0)
@@ -255,12 +256,14 @@ bhyveConnectGetVersion(virConnectPtr conn, unsigned long *version)

     uname(&ver);

-    if (virStringParseVersion(version, ver.release, true) < 0) {
+    if (virStringParseVersion(&tmpver, ver.release, true) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("Unknown release: %s"), ver.release);
         return -1;
     }

+    *version = tmpver;
+
     return 0;
 }

diff --git a/src/ch/ch_conf.c b/src/ch/ch_conf.c
index 0d07fa270c..81ef729bc9 100644
--- a/src/ch/ch_conf.c
+++ b/src/ch/ch_conf.c
@@ -175,7 +175,7 @@ virCHDriverConfigDispose(void *obj)
 int
 chExtractVersion(virCHDriver *driver)
 {
-    unsigned long version;
+    unsigned long long version;
     g_autofree char *help = NULL;
     char *tmp = NULL;
     g_autofree char *ch_cmd = g_find_program_in_path(CH_CMD);
diff --git a/src/esx/esx_vi.h b/src/esx/esx_vi.h
index 17d0bf9fea..b5eeaa750e 100644
--- a/src/esx/esx_vi.h
+++ b/src/esx/esx_vi.h
@@ -179,9 +179,9 @@ struct _esxVI_Context {
     char *username;
     char *password;
     esxVI_ServiceContent *service;
-    unsigned long apiVersion; /* = 1000000 * major + 1000 * minor + micro */
+    unsigned long long apiVersion; /* = 1000000 * major + 1000 * minor + micro */
     esxVI_ProductLine productLine;
-    unsigned long productVersion; /* = 1000000 * major + 1000 * minor + micro */
+    unsigned long long productVersion; /* = 1000000 * major + 1000 * minor + micro */
     esxVI_UserSession *session; /* ... except the session ... */
     virMutex *sessionLock; /* ... that is protected by this mutex */
     esxVI_Datacenter *datacenter;
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index b1d53659d7..623e8cfbb3 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -1641,6 +1641,7 @@ lxcConnectSupportsFeature(virConnectPtr conn, int feature)

 static int lxcConnectGetVersion(virConnectPtr conn, unsigned long *version)
 {
+    unsigned long long tmpver;
     struct utsname ver;

     uname(&ver);
@@ -1648,11 +1649,13 @@ static int lxcConnectGetVersion(virConnectPtr conn, unsigned long *version)
     if (virConnectGetVersionEnsureACL(conn) < 0)
         return -1;

-    if (virStringParseVersion(version, ver.release, true) < 0) {
+    if (virStringParseVersion(&tmpver, ver.release, true) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR, _("Unknown release: %s"), ver.release);
         return -1;
     }

+    *version = tmpver;
+
     return 0;
 }

diff --git a/src/network/bridge_driver_linux.c b/src/network/bridge_driver_linux.c
index d9597d91be..6e80435913 100644
--- a/src/network/bridge_driver_linux.c
+++ b/src/network/bridge_driver_linux.c
@@ -871,7 +871,7 @@ int networkAddFirewallRules(virNetworkDef *def)
                 if (virFirewallDInterfaceSetZone(def->bridge, "libvirt") < 0)
                     return -1;
             } else {
-                unsigned long version;
+                unsigned long long version;
                 int vresult = virFirewallDGetVersion(&version);

                 if (vresult < 0)
diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c
index c28d0e9f43..005f73d013 100644
--- a/src/openvz/openvz_conf.c
+++ b/src/openvz/openvz_conf.c
@@ -64,7 +64,7 @@ strtoI(const char *str)
 static int
 openvzExtractVersionInfo(const char *cmdstr, int *retversion)
 {
-    unsigned long version;
+    unsigned long long version;
     g_autofree char *help = NULL;
     char *tmp;
     g_autoptr(virCommand) cmd = virCommandNewArgList(cmdstr, "--help", NULL);
diff --git a/src/util/virdnsmasq.c b/src/util/virdnsmasq.c
index 342b489ab7..91d8080b92 100644
--- a/src/util/virdnsmasq.c
+++ b/src/util/virdnsmasq.c
@@ -604,7 +604,7 @@ dnsmasqCapsSetFromBuffer(dnsmasqCaps *caps, const char *buf)
 {
     int len;
     const char *p;
-    unsigned long version;
+    unsigned long long version;

     p = STRSKIP(buf, DNSMASQ_VERSION_STR);
     if (!p)
@@ -617,7 +617,7 @@ dnsmasqCapsSetFromBuffer(dnsmasqCaps *caps, const char *buf)

     if (version < DNSMASQ_MIN_MAJOR * 1000000 + DNSMASQ_MIN_MINOR * 1000) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                       _("dnsmasq version >= %u.%u required but %lu.%lu found"),
+                       _("dnsmasq version >= %u.%u required but %llu.%llu found"),
                        DNSMASQ_MIN_MAJOR, DNSMASQ_MIN_MINOR,
                        version / 1000000,
                        version % 1000000 / 1000);
diff --git a/src/util/virfirewalld.c b/src/util/virfirewalld.c
index d11e974cc2..06f8d49837 100644
--- a/src/util/virfirewalld.c
+++ b/src/util/virfirewalld.c
@@ -80,7 +80,7 @@ virFirewallDIsRegistered(void)
  * Returns 0 if version was successfully retrieved, or -1 on error
  */
 int
-virFirewallDGetVersion(unsigned long *version)
+virFirewallDGetVersion(unsigned long long *version)
 {
     GDBusConnection *sysbus = virGDBusGetSystemBus();
     g_autoptr(GVariant) message = NULL;
@@ -114,7 +114,7 @@ virFirewallDGetVersion(unsigned long *version)
         return -1;
     }

-    VIR_DEBUG("FirewallD version: %s - %lu", versionStr, *version);
+    VIR_DEBUG("FirewallD version: %s - %llu", versionStr, *version);

     return 0;
 }
diff --git a/src/util/virfirewalld.h b/src/util/virfirewalld.h
index fa4c9e702c..004d10ec29 100644
--- a/src/util/virfirewalld.h
+++ b/src/util/virfirewalld.h
@@ -29,7 +29,7 @@ typedef enum {
     VIR_FIREWALLD_BACKEND_LAST,
 } virFirewallDBackendType;

-int virFirewallDGetVersion(unsigned long *version);
+int virFirewallDGetVersion(unsigned long long *version);
 int virFirewallDGetBackend(void);
 int virFirewallDIsRegistered(void);
 int virFirewallDGetZones(char ***zones, size_t *nzones);
diff --git a/src/util/virstring.c b/src/util/virstring.c
index 7b7aee6179..c0c7b7ea8b 100644
--- a/src/util/virstring.c
+++ b/src/util/virstring.c
@@ -1022,7 +1022,7 @@ int virStringParseYesNo(const char *str, bool *result)

 /**
  * virStringParseVersion:
- * @version: unsigned long pointer to output the version number
+ * @version: unsigned long long pointer to output the version number
  * @str: const char pointer to the version string
  * @allowMissing: true to treat 3 like 3.0.0, false to error out on
  * missing minor or micro
@@ -1037,7 +1037,7 @@ int virStringParseYesNo(const char *str, bool *result)
  * Returns the 0 for success, -1 for error.
  */
 int
-virStringParseVersion(unsigned long *version,
+virStringParseVersion(unsigned long long *version,
                       const char *str,
                       bool allowMissing)
 {
diff --git a/src/util/virstring.h b/src/util/virstring.h
index ec8ceb0022..0f8b5d0664 100644
--- a/src/util/virstring.h
+++ b/src/util/virstring.h
@@ -136,6 +136,6 @@ int virStringParseYesNo(const char *str,
                         bool *result)
     G_GNUC_WARN_UNUSED_RESULT;

-int virStringParseVersion(unsigned long *version,
+int virStringParseVersion(unsigned long long *version,
                           const char *str,
                           bool allowMissing);
diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c
index 7aed421390..d1dffe3df7 100644
--- a/src/vbox/vbox_common.c
+++ b/src/vbox/vbox_common.c
@@ -272,6 +272,7 @@ vboxExtractVersion(void)
     int ret = -1;
     PRUnichar *versionUtf16 = NULL;
     char *vboxVersion = NULL;
+    unsigned long long version;
     nsresult rc;

     if (vbox_driver->version > 0)
@@ -283,9 +284,11 @@ vboxExtractVersion(void)

     gVBoxAPI.UPFN.Utf16ToUtf8(vbox_driver->pFuncs, versionUtf16, &vboxVersion);

-    if (virStringParseVersion(&vbox_driver->version, vboxVersion, false) >= 0)
+    if (virStringParseVersion(&version, vboxVersion, false) >= 0)
         ret = 0;

+    vbox_driver->version = version;
+
     gVBoxAPI.UPFN.Utf8Free(vbox_driver->pFuncs, vboxVersion);
     gVBoxAPI.UPFN.ComUnallocMem(vbox_driver->pFuncs, versionUtf16);
     vboxVersion = NULL;
diff --git a/src/vmware/vmware_conf.c b/src/vmware/vmware_conf.c
index 5703ce717e..77a592e3b7 100644
--- a/src/vmware/vmware_conf.c
+++ b/src/vmware/vmware_conf.c
@@ -197,6 +197,7 @@ vmwareSetSentinal(const char **prog, const char *key)
 int
 vmwareParseVersionStr(int type, const char *verbuf, unsigned long *version)
 {
+    unsigned long long tmpver;
     const char *pattern;
     const char *tmp;

@@ -228,12 +229,14 @@ vmwareParseVersionStr(int type, const char *verbuf, unsigned long *version)
         return -1;
     }

-    if (virStringParseVersion(version, tmp, false) < 0) {
+    if (virStringParseVersion(&tmpver, tmp, false) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                        _("version parsing error"));
         return -1;
     }

+    *version = tmpver;
+
     return 0;
 }

diff --git a/src/vz/vz_utils.c b/src/vz/vz_utils.c
index 219d13823b..c6e4a58771 100644
--- a/src/vz/vz_utils.c
+++ b/src/vz/vz_utils.c
@@ -154,6 +154,7 @@ vzInitVersion(struct _vzDriver *driver)
     g_autofree char *output = NULL;
     char *sVer, *tmp;
     const char *searchStr = "prlsrvctl version ";
+    unsigned long long version;
     int ret = -1;

     output = vzGetOutput(PRLSRVCTL, "--help", NULL);
@@ -183,11 +184,13 @@ vzInitVersion(struct _vzDriver *driver)
     }

     tmp[0] = '\0';
-    if (virStringParseVersion(&(driver->vzVersion), sVer, true) < 0) {
+    if (virStringParseVersion(&version, sVer, true) < 0) {
         vzParseError();
         return -1;
     }

+    driver->vzVersion = version;
+
     vzInitCaps(driver->vzVersion, &driver->vzCaps);

     return 0;
diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c
index a5780dc746..41727cfd1a 100644
--- a/tests/testutilsqemu.c
+++ b/tests/testutilsqemu.c
@@ -718,8 +718,8 @@ testQemuGetLatestCapsForArch(const char *arch,
     g_autoptr(DIR) dir = NULL;
     int rc;
     g_autofree char *fullsuffix = NULL;
-    unsigned long maxver = 0;
-    unsigned long ver;
+    unsigned long long maxver = 0;
+    unsigned long long ver;
     g_autofree char *maxname = NULL;

     fullsuffix = g_strdup_printf("%s.%s", arch, suffix);
diff --git a/tests/utiltest.c b/tests/utiltest.c
index e90baca65f..5930557c08 100644
--- a/tests/utiltest.c
+++ b/tests/utiltest.c
@@ -124,7 +124,7 @@ struct testVersionString
     const char *string;
     bool allowMissing;
     int result;
-    unsigned long version;
+    unsigned long long version;
 };

 static struct testVersionString versions[] = {
@@ -146,7 +146,7 @@ testParseVersionString(const void *data G_GNUC_UNUSED)
 {
     int result;
     size_t i;
-    unsigned long version;
+    unsigned long long version;

     for (i = 0; i < G_N_ELEMENTS(versions); ++i) {
         result = virStringParseVersion(&version, versions[i].string,
@@ -165,8 +165,8 @@ testParseVersionString(const void *data G_GNUC_UNUSED)

         if (version != versions[i].version) {
             VIR_TEST_DEBUG("\nVersion string [%s]", versions[i].string);
-            VIR_TEST_DEBUG("Expect version [%lu]", versions[i].version);
-            VIR_TEST_DEBUG("Actual version [%lu]", version);
+            VIR_TEST_DEBUG("Expect version [%llu]", versions[i].version);
+            VIR_TEST_DEBUG("Actual version [%llu]", version);

             return -1;
         }
diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c
index a41bb346d2..08fcdc1173 100644
--- a/tools/virt-host-validate-common.c
+++ b/tools/virt-host-validate-common.c
@@ -251,7 +251,7 @@ int virHostValidateLinuxKernel(const char *hvname,
                                const char *hint)
 {
     struct utsname uts;
-    unsigned long thisversion;
+    unsigned long long thisversion;

     uname(&uts);

-- 
2.39.2



More information about the libvir-list mailing list