drm/gma500: Remove VLA
authorLaura Abbott <labbott@redhat.com>
Mon, 9 Apr 2018 21:06:47 +0000 (14:06 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 23 May 2018 08:45:02 +0000 (10:45 +0200)
There's an ongoing effort to remove VLAs[1] from the kernel to eventually
turn on -Wvla. Switch to a reasonable upper bound for the VLAs in
the gma500 driver.

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

Signed-off-by: Laura Abbott <labbott@redhat.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20180409210647.3718-1-labbott@redhat.com
drivers/gpu/drm/gma500/psb_intel_sdvo.c

index f2ee6aa..1d40746 100644 (file)
@@ -429,13 +429,20 @@ static const char *cmd_status_names[] = {
        "Scaling not supported"
 };
 
+#define MAX_ARG_LEN 32
+
 static bool psb_intel_sdvo_write_cmd(struct psb_intel_sdvo *psb_intel_sdvo, u8 cmd,
                                 const void *args, int args_len)
 {
-       u8 buf[args_len*2 + 2], status;
-       struct i2c_msg msgs[args_len + 3];
+       u8 buf[MAX_ARG_LEN*2 + 2], status;
+       struct i2c_msg msgs[MAX_ARG_LEN + 3];
        int i, ret;
 
+       if (args_len > MAX_ARG_LEN) {
+               DRM_ERROR("Need to increase arg length\n");
+               return false;
+       }
+
        psb_intel_sdvo_debug_write(psb_intel_sdvo, cmd, args, args_len);
 
        for (i = 0; i < args_len; i++) {