Message ID | fa69384f-1485-142b-c4ee-3df54ac68a89@web.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [resent] drm/bridge: it6505: Move a variable assignment behind a null pointer check in receive_timing_debugfs_show() | expand |
On Fri, Apr 28, 2023 at 5:56 PM Markus Elfring <Markus.Elfring@web.de> wrote: > > From: Markus Elfring <elfring@users.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@users.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.
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);