Skip to contentSkip to conversation

drm/gma500: fix potential NULL pointer dereference dereference

PATCH Applied Gustavo A. R. Silva 2 participants 2 messages Aug 12, 2017 – Aug 14, 2017

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drm/gma500: fix potential NULL pointer dereference dereference

NULL check at line 528: if (!sender || !data_out || !len_out) {, implies that pointer _sender_ might be NULL.

Move pointer _sender_ dereference after NULL check in order to avoid a potential NULL pointer dereference.

This issue was detected with the help of Coccinelle.

---
 drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c +3 -1
index 1616af2..c50534c 100644
@@ -520,7 +520,7 @@ static int __read_panel_data(struct mdfld_dsi_pkg_sender *sender, u8 data_type,
 			u8 *data, u16 len, u32 *data_out, u16 len_out, bool hs)
 {
 	unsigned long flags;
-	struct drm_device *dev = sender->dev;
+	struct drm_device *dev;
 	int i;
 	u32 gen_data_reg;
 	int retry = MDFLD_DSI_READ_MAX_COUNT;
@@ -530,6 +530,8 @@ static int __read_panel_data(struct mdfld_dsi_pkg_sender *sender, u8 data_type,
 		return -EINVAL;
 	}
 
+	dev = sender->dev;
+
 	/**
 	 * do reading.
 	 * 0) send out generic read request
Signature · 1 line
2.5.0
#1 lore raw
Quoted 9 lines · Gustavo A. R. Silva

NULL check at line 528: if (!sender || !data_out || !len_out) {, implies that pointer _sender_ might be NULL.

Move pointer _sender_ dereference after NULL check in order to avoid a potential NULL pointer dereference.

This issue was detected with the help of Coccinelle.

Applied to drm-misc-next, thanks.
-Daniel

Quoted 33 lines
---
 drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c +3 -1
index 1616af2..c50534c 100644
@@ -520,7 +520,7 @@ static int __read_panel_data(struct mdfld_dsi_pkg_sender *sender, u8 data_type,
 			u8 *data, u16 len, u32 *data_out, u16 len_out, bool hs)
 {
 	unsigned long flags;
-	struct drm_device *dev = sender->dev;
+	struct drm_device *dev;
 	int i;
 	u32 gen_data_reg;
 	int retry = MDFLD_DSI_READ_MAX_COUNT;
@@ -530,6 +530,8 @@ static int __read_panel_data(struct mdfld_dsi_pkg_sender *sender, u8 data_type,
 		return -EINVAL;
 	}
 
+	dev = sender->dev;
+
 	/**
 	 * do reading.
 	 * 0) send out generic read request
Signature · 6 lines
2.5.0

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Signature · 7 lines
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel