mei: bus: elminate variable length arrays
authorTomas Winkler <tomas.winkler@intel.com>
Mon, 20 Mar 2017 13:04:05 +0000 (15:04 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 8 Apr 2017 15:38:25 +0000 (17:38 +0200)
Though VLA are supported by CC99 there are many cavities
and should be avoided.

'const size_t len = sizeof()' that we used may not be set
at the compile time hence generating VLA code.

This fixes also sparse warning
warning: Variable length array is used type.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mei/bus-fixup.c

index 29f2dae..0208c4b 100644 (file)
@@ -110,12 +110,13 @@ struct mkhi_msg {
        u8 data[0];
 } __packed;
 
+#define MKHI_OSVER_BUF_LEN (sizeof(struct mkhi_msg_hdr) + \
+                           sizeof(struct mkhi_fwcaps) + \
+                           sizeof(struct mei_os_ver))
 static int mei_osver(struct mei_cl_device *cldev)
 {
-       const size_t size = sizeof(struct mkhi_msg_hdr) +
-                           sizeof(struct mkhi_fwcaps) +
-                           sizeof(struct mei_os_ver);
-       char buf[size];
+       const size_t size = MKHI_OSVER_BUF_LEN;
+       char buf[MKHI_OSVER_BUF_LEN];
        struct mkhi_msg *req;
        struct mkhi_fwcaps *fwcaps;
        struct mei_os_ver *os_ver;