[PATCH] conf: Don't check virTristateBool < 0

Jim Fehlig jfehlig at suse.com
Tue Sep 1 22:18:52 UTC 2020


Commit 9d15647dcb introduced a check of virtTristateBool < 0, which
causes a build failure in some environments

../dist-unpack/libvirt-6.8.0/src/conf/domain_conf.c:8144:78: error:
result of comparison of unsigned enum expression < 0 is always false
[-Werror,-Wtautological-unsigned-enum-zero-compare]
if ((def->writeFiltering = virTristateBoolTypeFromString(filtering)) < 0) {

Fix it by assigning the return value of virTristateBoolTypeFromString
to a temp int variable, which allows checking for unknown values before
assigning to the virtTristateBool variable.

Signed-off-by: Jim Fehlig <jfehlig at suse.com>
---

Perhaps considered trivial and could be pushed under the build-breaker
rule, but I'd prefer a review since I've botched trivial patches in the
past :-).

 src/conf/domain_conf.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 7d177a5562..5b224ccd78 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8141,12 +8141,15 @@ virDomainHostdevSubsysPCIDefParseXML(xmlNodePtr node,
     xmlNodePtr cur;
 
     if ((filtering = virXMLPropString(node, "writeFiltering"))) {
-        if ((def->writeFiltering = virTristateBoolTypeFromString(filtering)) < 0) {
+        int filterval;
+
+        if ((filterval = virTristateBoolTypeFromString(filtering)) < 0) {
             virReportError(VIR_ERR_XML_ERROR,
                            _("unknown pci writeFiltering setting '%s'"),
                            filtering);
             return -1;
         }
+        def->writeFiltering = filterval;
     }
 
     cur = node->children;
-- 
2.28.0





More information about the libvir-list mailing list