]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/bridge: it6505: Move a variable assignment behind a null pointer check in receive...
authorMarkus Elfring <elfring@users.sourceforge.net>
Sun, 16 Apr 2023 15:30:46 +0000 (17:30 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 11 Jul 2023 17:39:32 +0000 (19:39 +0200)
[ Upstream commit 0be05a75de2916421e88e0d64b001984f54df0bd ]

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: b5c84a9edcd4 ("drm/bridge: add it6505 driver")
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Link: https://patchwork.freedesktop.org/patch/msgid/fa69384f-1485-142b-c4ee-3df54ac68a89@web.de
Reviewed-by: Robert Foss <rfoss@kernel.org>
Signed-off-by: Robert Foss <rfoss@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/bridge/ite-it6505.c

index bc451b2a77c28377c6b21bbb167ba0877ba561e7..32ea61b79965e7dea7af50d0f0b44e1f848c674a 100644 (file)
@@ -3195,7 +3195,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;
@@ -3204,6 +3204,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);