linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [EDT][PATCh 1/1]mdfld_dsi_pkg_sender.c : Fix Possible NULL Pointer dereference
@ 2015-05-19  8:53 Maninder Singh
  0 siblings, 0 replies; only message in thread
From: Maninder Singh @ 2015-05-19  8:53 UTC (permalink / raw)
  To: airlied, treding, damien.lespiau, airlied, alan, dri-devel, linux-kernel
  Cc: v.narang

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=windows-1252, Size: 2060 bytes --]

EP-AA9D1F29B02341529D96C06444D8471D

Hi,

There is NULL pointer check for sender after dereferencing sender in __read_panel_data as below:-
struct drm_device *dev = sender->dev;
...
if (!sender || !data || !len)

And from codeflow

mdfld_dsi_get_panel_status --> mdfld_dsi_read_mcs  --> __read_panel_data 
In mdfld_dsi_get_panel_status  & mdfld_dsi_read_mcs there is already a same check.

-----------Cut------------
 if (!sender || !data || !len) {
        DRM_ERROR("Invalid parameters\n");
        return -EINVAL;
    }
return __read_panel_data(sender, MIPI_DSI_DCS_READ, &cmd, 1,
                data, len, hs);
--------------------Cut-----------
So either we can remove this check from __read_panel_data ,
or if we want to have defensive code then below change should be included.

Subject: [PATCH 1/1] mdfld_dsi_pkg_sender.c : Initialize dev struct after NULL check of sender

Signed-off-by: Maninder Singh <maninder1.s@samsung.com>
Reviewed-By: Vaneet Narang <v.narang@samsung.com>
---
 drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c b/drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c
index 6b43ae3..6f2b2c9 100644
--- a/drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c
+++ b/drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c
@@ -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
-- 
1.7.1

Thanks
Maninderÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-05-19  8:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-19  8:53 [EDT][PATCh 1/1]mdfld_dsi_pkg_sender.c : Fix Possible NULL Pointer dereference Maninder Singh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).