vhost-user: verify that number of queues is less than MAX_QUEUE_NUM
authorIlya Maximets <i.maximets@samsung.com>
Wed, 24 Feb 2016 10:44:34 +0000 (13:44 +0300)
committerMichael S. Tsirkin <mst@redhat.com>
Fri, 11 Mar 2016 12:55:15 +0000 (14:55 +0200)
Fix QEMU crash when -netdev vhost-user,queues=n is passed with number
of queues greater than MAX_QUEUE_NUM.

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
net/vhost-user.c

index 451dbbf..b753b3d 100644 (file)
@@ -317,9 +317,10 @@ int net_init_vhost_user(const NetClientOptions *opts, const char *name,
     }
 
     queues = vhost_user_opts->has_queues ? vhost_user_opts->queues : 1;
-    if (queues < 1) {
+    if (queues < 1 || queues > MAX_QUEUE_NUM) {
         error_setg(errp,
-                   "vhost-user number of queues must be bigger than zero");
+                   "vhost-user number of queues must be in range [1, %d]",
+                   MAX_QUEUE_NUM);
         return -1;
     }