usb: usbtest: Remove stack VLA usage
authorTobin C. Harding <me@tobin.cc>
Fri, 9 Mar 2018 06:11:14 +0000 (17:11 +1100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Mar 2018 17:10:22 +0000 (09:10 -0800)
The kernel would like to have all stack VLA usage removed[1].  We
already have a pre-processor constant defined MAX_SGLEN.  We can use
this instead of the variable param-sglen.

[1]: https://lkml.org/lkml/2018/3/7/621

Signed-off-by: Tobin C. Harding <me@tobin.cc>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/misc/usbtest.c

index 90028ef..9e1142b 100644 (file)
@@ -2028,11 +2028,14 @@ test_queue(struct usbtest_dev *dev, struct usbtest_param_32 *param,
        unsigned                i;
        unsigned long           packets = 0;
        int                     status = 0;
-       struct urb              *urbs[param->sglen];
+       struct urb              *urbs[MAX_SGLEN];
 
        if (!param->sglen || param->iterations > UINT_MAX / param->sglen)
                return -EINVAL;
 
+       if (param->sglen > MAX_SGLEN)
+               return -EINVAL;
+
        memset(&context, 0, sizeof(context));
        context.count = param->iterations * param->sglen;
        context.dev = dev;