Received: by 10.192.165.156 with SMTP id m28csp138021imm; Tue, 10 Apr 2018 18:16:34 -0700 (PDT) X-Google-Smtp-Source: AIpwx48HqJFnyISIdSljnu1q7AH49+vgRWhgcyP4+as82+B8D+94d843gz72rczo2veUsRi2ORMb X-Received: by 2002:a17:902:32a2:: with SMTP id z31-v6mr2801763plb.41.1523409394337; Tue, 10 Apr 2018 18:16:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523409394; cv=none; d=google.com; s=arc-20160816; b=TcUOQKTfcbRTZEJeWRk5+ysrhtG8I/F2odLb5MeEmtMVosezxMNDPy3FFj+zzo5pZd AOgFAHdqJtsZvvCiO4/BOT0cGMoejBn6hY3dFVu0zHKE8m/qaf3PHZTWlUweRM5dYjCY UenrYeU8n1rCo1WVFoXoldwa41yc2/nbHaHqtmyqjvcBvhn7d0d6cRlSPtau/3Yhe7Aq E4luTB/ez3HY3S+KEmN4gTPIY2SaPoI9qYV1gu4+/nDLw0b4VHuC9ZsDtXDATyoYoSjZ YJxA0PrP4xbq4fNMBJ3DE9xZxLb80gCqjQ7o3WdsUJ2QxJuxo5+48NUdr+A2hI4PdOLG htqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=a8jzB+4333HGsfDCv6oyqqZ3vgyNG2rzXgC5UtxijMM=; b=spo2t2QUsvRIlETvh2Y3VKfaPIxf/YXUxpFvhWl+/IlCSjRws+xj0AtHh6QLKW7CgR 3sndFb+Bp6P04RRyPFnnAGc+k4CGQEDCbV8n2GALv2BeV6O8IaXN2W5AUyvMV0BVpO4U 1sSHKGYu1IhBDasW5TSbkCBFos+LbA5984GKjNK0kBRxSayZgwprkyeoh1ahRgZTTj3o 5yxxtNdxlarn14QEyVfDwxj3IspklD8wXO5XpuI7F2a2xIFguBlw8e56pC/lIfq+a3Lc aE0fpNodkKosmVaUfGUF/HsbG5iBKqFQxfxiLfCjO30R6Wvr7o+wodjBADtPZGGXb2wG JZZg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x10-v6si3748640plv.563.2018.04.10.18.15.57; Tue, 10 Apr 2018 18:16:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752988AbeDKBDq (ORCPT + 99 others); Tue, 10 Apr 2018 21:03:46 -0400 Received: from mail-pf0-f195.google.com ([209.85.192.195]:35355 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752363AbeDKBDp (ORCPT ); Tue, 10 Apr 2018 21:03:45 -0400 Received: by mail-pf0-f195.google.com with SMTP id u86so141111pfd.2 for ; Tue, 10 Apr 2018 18:03:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=a8jzB+4333HGsfDCv6oyqqZ3vgyNG2rzXgC5UtxijMM=; b=ULuTKNgIqmbtYDCur9wnnXLmAKiinxVbT+ZGf/pNeyWD408jfj27brtUFzmtFvV9gs W+RNLtKcSC4z7ataKsCPeCAjxD+IVrL6Xj+njiCfzLIw+UTSdGK1nAjjCKa0DVVpVWxQ 3LXxBV6VbFAm/4wxdEDCiT7Qm7SGSPnU0dTDpmxrck4GqgdB6U0S9nqKvAWo+9ko/wCX GGWw9qUNmK1LHJt4cLveNfN6b7/V87r2gtJQOJ7SDbXat6VvgujwtI8m/0ova4JKkE4R ergFQYUrC/ih1CyTJm7oQFLIH9pR22rNM5wra4YSzvdfHbKI5WDXR+2UaSO8iaHCrcRZ GIkg== X-Gm-Message-State: ALQs6tBLx7NreFWYjFLjK1ncjvgLs8bS7GaU3cgIVKHSShLzJInLzPU9 5r9NxKtpoJozagmH94tsG+zBQQ== X-Received: by 10.98.174.5 with SMTP id q5mr2134917pff.155.1523408624731; Tue, 10 Apr 2018 18:03:44 -0700 (PDT) Received: from labbott-redhat.redhat.com ([2601:602:9802:a8dc:4eb2:6dae:ab32:e5b0]) by smtp.gmail.com with ESMTPSA id t25sm6525340pfh.184.2018.04.10.18.03.40 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 10 Apr 2018 18:03:43 -0700 (PDT) From: Laura Abbott To: Russell King , David Airlie Cc: Laura Abbott , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Kees Cook Subject: [PATCHv2] drm/i2c: tda998x: Remove VLA usage Date: Tue, 10 Apr 2018 18:03:30 -0700 Message-Id: <20180411010330.17866-1-labbott@redhat.com> X-Mailer: git-send-email 2.14.3 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There's an ongoing effort to remove VLAs[1] from the kernel to eventually turn on -Wvla. The vla in reg_write_range is based on the length of data passed. The one use of a non-constant size for this range is bounded by the size buffer passed to hdmi_infoframe_pack which is a fixed size. Switch to this upper bound. [1] https://lkml.org/lkml/2018/3/7/621 Signed-off-by: Laura Abbott --- v2: Switch to make the buffer size more transparent and add a bounds check. --- drivers/gpu/drm/i2c/tda998x_drv.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c index 9e67a7b4e3a4..c8b6029b7839 100644 --- a/drivers/gpu/drm/i2c/tda998x_drv.c +++ b/drivers/gpu/drm/i2c/tda998x_drv.c @@ -466,13 +466,22 @@ reg_read_range(struct tda998x_priv *priv, u16 reg, char *buf, int cnt) return ret; } +#define MAX_WRITE_RANGE_BUF 32 + static void reg_write_range(struct tda998x_priv *priv, u16 reg, u8 *p, int cnt) { struct i2c_client *client = priv->hdmi; - u8 buf[cnt+1]; + /* This is the maximum size of the buffer passed in */ + u8 buf[MAX_WRITE_RANGE_BUF + 1]; int ret; + if (cnt > MAX_WRITE_RANGE_BUF) { + dev_err(&client->dev, "Fixed write buffer too small (%d)\n", + MAX_WRITE_RANGE_BUF); + return; + } + buf[0] = REG2ADDR(reg); memcpy(&buf[1], p, cnt); @@ -679,7 +688,7 @@ static void tda998x_write_if(struct tda998x_priv *priv, u8 bit, u16 addr, union hdmi_infoframe *frame) { - u8 buf[32]; + u8 buf[MAX_WRITE_RANGE_BUF]; ssize_t len; len = hdmi_infoframe_pack(frame, buf, sizeof(buf)); -- 2.14.3