diff mbox

vhost-user: verify that number of queues is less than MAX_QUEUE_NUM

Message ID 1456310674-3237-1-git-send-email-i.maximets@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ilya Maximets Feb. 24, 2016, 10:44 a.m. UTC
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>
---
 net/vhost-user.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Jason Wang Feb. 26, 2016, 6:32 a.m. UTC | #1
On 02/24/2016 06:44 PM, Ilya Maximets wrote:
> 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>
> ---
>  net/vhost-user.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/net/vhost-user.c b/net/vhost-user.c
> index 451dbbf..b753b3d 100644
> --- a/net/vhost-user.c
> +++ b/net/vhost-user.c
> @@ -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;
>      }
>  

Acked-by: Jason Wang <jasowang@redhat.com>
diff mbox

Patch

diff --git a/net/vhost-user.c b/net/vhost-user.c
index 451dbbf..b753b3d 100644
--- a/net/vhost-user.c
+++ b/net/vhost-user.c
@@ -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;
     }