[<prev] [next>] [day] [month] [year] [list]
Message-ID: <CAN6tsi5vukABCxWMNtUHokXj3+xObnX_aKvP-oQDde+M+Biv4g@mail.gmail.com>
Date: Fri, 28 Apr 2023 19:27:54 +0200
From: Robert Foss <rfoss@...nel.org>
To: Markus Elfring <Markus.Elfring@....de>
Cc: kernel-janitors@...r.kernel.org, dri-devel@...ts.freedesktop.org,
Andrzej Hajda <andrzej.hajda@...el.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@...labora.com>,
Daniel Vetter <daniel@...ll.ch>,
David Airlie <airlied@...il.com>,
Hermes Wu <hermes.wu@....com.tw>,
Hsin-yi Wang <hsinyi@...omium.org>,
Jernej Skrabec <jernej.skrabec@...il.com>,
Jonas Karlman <jonas@...boo.se>,
Laurent Pinchart <Laurent.pinchart@...asonboard.com>,
Neil Armstrong <neil.armstrong@...aro.org>,
LKML <linux-kernel@...r.kernel.org>, cocci@...ia.fr
Subject: Re: [PATCH resent] drm/bridge: it6505: Move a variable assignment
behind a null pointer check in receive_timing_debugfs_show()
On Fri, Apr 28, 2023 at 5:56 PM Markus Elfring <Markus.Elfring@....de> wrote:
>
> From: Markus Elfring <elfring@...rs.sourceforge.net>
> Date: Sun, 16 Apr 2023 17:30:46 +0200
>
> The address of a data structure member was determined before
> a corresponding null pointer check in the implementation of
> the function “receive_timing_debugfs_show”.
>
> Thus avoid the risk for undefined behaviour by moving the assignment
> for the variable “vid” behind the null pointer check.
>
> This issue was detected by using the Coccinelle software.
>
> Fixes: b5c84a9edcd418cd055becad6a22439e7c5e3bf8 ("drm/bridge: add it6505 driver")
> Signed-off-by: Markus Elfring <elfring@...rs.sourceforge.net>
> ---
> drivers/gpu/drm/bridge/ite-it6505.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
> index abaf6e23775e..45f579c365e7 100644
> --- a/drivers/gpu/drm/bridge/ite-it6505.c
> +++ b/drivers/gpu/drm/bridge/ite-it6505.c
> @@ -3207,7 +3207,7 @@ static ssize_t receive_timing_debugfs_show(struct file *file, char __user *buf,
> size_t len, loff_t *ppos)
> {
> struct it6505 *it6505 = file->private_data;
> - struct drm_display_mode *vid = &it6505->video_info;
> + struct drm_display_mode *vid;
> u8 read_buf[READ_BUFFER_SIZE];
> u8 *str = read_buf, *end = read_buf + READ_BUFFER_SIZE;
> ssize_t ret, count;
> @@ -3216,6 +3216,7 @@ static ssize_t receive_timing_debugfs_show(struct file *file, char __user *buf,
> return -ENODEV;
>
> it6505_calc_video_info(it6505);
> + vid = &it6505->video_info;
> str += scnprintf(str, end - str, "---video timing---\n");
> str += scnprintf(str, end - str, "PCLK:%d.%03dMHz\n",
> vid->clock / 1000, vid->clock % 1000);
> --
> 2.40.0
>
Applied to drm-misc-next.
Powered by blists - more mailing lists