[libvirt] [PATCH] virNetServerNewPostExecRestart: Initialize @max_anonymous_clients

Michal Privoznik mprivozn at redhat.com
Tue Mar 18 10:10:58 UTC 2014


Coverity spotted a use of possibly undefined variable. If a server is
restarting as an result of update, the JSON file that keeps current
value of some variables will not contain the new variables. This is
the case of @max_anonymous_clients too. We are correctly querying if
there's "max_anonymous_clients" in the JSON, however, we are not
setting a sane default if there's none.

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 src/rpc/virnetserver.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c
index dfa3565..33a0346 100644
--- a/src/rpc/virnetserver.c
+++ b/src/rpc/virnetserver.c
@@ -494,12 +494,15 @@ virNetServerPtr virNetServerNewPostExecRestart(virJSONValuePtr object,
                        _("Missing max_clients data in JSON document"));
         goto error;
     }
-    if (virJSONValueObjectHasKey(object, "max_anonymous_clients") &&
-        virJSONValueObjectGetNumberUint(object, "max_anonymous_clients",
-                                        &max_anonymous_clients) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Malformed max_anonymous_clients data in JSON document"));
-        goto error;
+    if (virJSONValueObjectHasKey(object, "max_anonymous_clients")) {
+        if (virJSONValueObjectGetNumberUint(object, "max_anonymous_clients",
+                                            &max_anonymous_clients) < 0) {
+            virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+                           _("Malformed max_anonymous_clients data in JSON document"));
+            goto error;
+        }
+    } else {
+        max_anonymous_clients = max_clients;
     }
     if (virJSONValueObjectGetNumberUint(object, "keepaliveInterval", &keepaliveInterval) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-- 
1.9.0




More information about the libvir-list mailing list