]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virDomainDeviceLoadparmIsValid: Use 'strspn' instead of a loop
authorPeter Krempa <pkrempa@redhat.com>
Thu, 25 Nov 2021 12:44:13 +0000 (13:44 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 1 Dec 2021 12:39:47 +0000 (13:39 +0100)
In other places we use strspn to validate a character subset. Convert
the in-place loop and simplify the error message.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/domain_conf.c
tests/qemuxml2argvdata/machine-loadparm-s390-char-invalid.err

index 6f8edf7694c583f976a5abc99e8c13368ffb6567..5c5884f3bdae14576c96360f43b6c791e139936c 100644 (file)
@@ -6298,8 +6298,6 @@ virDomainObjCheckActive(virDomainObj *dom)
 static bool
 virDomainDeviceLoadparmIsValid(const char *loadparm)
 {
-    size_t i;
-
     if (virStringIsEmpty(loadparm) || !STRLIM(loadparm, 8)) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("loadparm value '%s' must be between 1 and 8 characters"),
@@ -6307,18 +6305,11 @@ virDomainDeviceLoadparmIsValid(const char *loadparm)
         return false;
     }
 
-    for (i = 0; i < strlen(loadparm); i++) {
-        uint8_t c = loadparm[i];
-
-        if (('A' <= c && c <= 'Z') || ('0' <= c && c <= '9') ||
-            (c == '.') || (c == ' ')) {
-            continue;
-        } else {
-            virReportError(VIR_ERR_INTERNAL_ERROR,
-                           _("invalid loadparm char '%c', expecting chars"
-                             " in set of [a-zA-Z0-9.] and blank spaces"), c);
-            return false;
-        }
+    if (strspn(loadparm, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789. ") != strlen(loadparm)) {
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("invalid loadparm value '%s', expecting chars in set of [a-zA-Z0-9.] and blank spaces"),
+                       loadparm);
+        return false;
     }
 
     return true;
index c3eb45559499c386b7c44fb6ecda9d5d3bcee48b..0283db9f48aaa02f152372f4999d8a73e29f508d 100644 (file)
@@ -1 +1 @@
-internal error: invalid loadparm char '?', expecting chars in set of [a-zA-Z0-9.] and blank spaces
+internal error: invalid loadparm value 'SYS1?', expecting chars in set of [a-zA-Z0-9.] and blank spaces