From mboxrd@z Thu Jan 1 00:00:00 1970 From: Corentin Labbe Subject: Re: [PATCH] Gpu: drm: rockchip - Fix possible NULL derefrence. Date: Fri, 27 Jan 2017 13:43:19 +0100 Message-ID: <20170127124319.GA13611@Red> References: <1485515510-3129-1-git-send-email-shailendra.v@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1485515510-3129-1-git-send-email-shailendra.v@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Shailendra Verma Cc: ashish.kalra@samsung.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, p.shailesh@samsung.com, Shailendra Verma , linux-arm-kernel@lists.infradead.org List-Id: linux-rockchip.vger.kernel.org T24gRnJpLCBKYW4gMjcsIDIwMTcgYXQgMDQ6NDE6NTBQTSArMDUzMCwgU2hhaWxlbmRyYSBWZXJt YSB3cm90ZToKPiBvZl9tYXRjaF9kZXZpY2UgY291bGQgcmV0dXJuIE5VTEwsIGFuZCBzbyBjYW4g Y2F1c2UgYSBOVUxMCj4gcG9pbnRlciBkZXJlZmVyZW5jZSBsYXRlci4KPiAKPiBTaWduZWQtb2Zm LWJ5OiBTaGFpbGVuZHJhIFZlcm1hIDxzaGFpbGVuZHJhLnZAc2Ftc3VuZy5jb20+Cj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jIHwgICAxMyArKysrKysrKysr LS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1kc2kuYyBi L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jCj4gaW5kZXggY2EyMmU1ZS4u ZGJiOTljZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHctbWlwaS1k c2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jCj4gQEAg LTEwODIsMTUgKzEwODIsMjIgQEAgc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzIHJrMzI4OF9t aXBpX2RzaV9tb2RlX3ZhbGlkKAo+ICBzdGF0aWMgaW50IGR3X21pcGlfZHNpX2JpbmQoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gIAkJCSAgICAgdm9pZCAqZGF0 YSkKPiAgewo+IC0JY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqb2ZfaWQgPQo+IC0JCQlvZl9t YXRjaF9kZXZpY2UoZHdfbWlwaV9kc2lfZHRfaWRzLCBkZXYpOwo+IC0JY29uc3Qgc3RydWN0IGR3 X21pcGlfZHNpX3BsYXRfZGF0YSAqcGRhdGEgPSBvZl9pZC0+ZGF0YTsKPiArCWNvbnN0IHN0cnVj dCBvZl9kZXZpY2VfaWQgKm9mX2lkOwo+ICsJY29uc3Qgc3RydWN0IGR3X21pcGlfZHNpX3BsYXRf ZGF0YSAqcGRhdGE7Cj4gIAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZv cm1fZGV2aWNlKGRldik7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gZGF0YTsKPiAgCXN0 cnVjdCBkd19taXBpX2RzaSAqZHNpOwo+ICAJc3RydWN0IHJlc291cmNlICpyZXM7Cj4gIAlpbnQg cmV0Owo+ICAKPiArCW9mX2lkID0gb2ZfbWF0Y2hfZGV2aWNlKGR3X21pcGlfZHNpX2R0X2lkcywg ZGV2KTsKPiArCWlmICghb2ZfaWQpIHsKPiArCQlkZXZfZXJyKGRldiwgIkVycm9yOiBObyBkZXZp Y2UgbWF0Y2ggZm91bmRcbiIpOwo+ICsJCXJldHVybiAtRU5PREVWOwo+ICsJfQo+ICsKPiArCXBk YXRhID0gb2ZfaWQtPmRhdGE7Cj4gKwo+ICAJZHNpID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9m KCpkc2kpLCBHRlBfS0VSTkVMKTsKPiAgCWlmICghZHNpKQo+ICAJCXJldHVybiAtRU5PTUVNOwoK SGVsbG8KCllvdSBjb3VsZCB1c2Ugb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKCkKClJlZ2FyZHMK Q29yZW50aW4gTGFiYmUKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: clabbe.montjoie@gmail.com (Corentin Labbe) Date: Fri, 27 Jan 2017 13:43:19 +0100 Subject: [PATCH] Gpu: drm: rockchip - Fix possible NULL derefrence. In-Reply-To: <1485515510-3129-1-git-send-email-shailendra.v@samsung.com> References: <1485515510-3129-1-git-send-email-shailendra.v@samsung.com> Message-ID: <20170127124319.GA13611@Red> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, Jan 27, 2017 at 04:41:50PM +0530, Shailendra Verma wrote: > of_match_device could return NULL, and so can cause a NULL > pointer dereference later. > > Signed-off-by: Shailendra Verma > --- > drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > index ca22e5e..dbb99cf 100644 > --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > @@ -1082,15 +1082,22 @@ static enum drm_mode_status rk3288_mipi_dsi_mode_valid( > static int dw_mipi_dsi_bind(struct device *dev, struct device *master, > void *data) > { > - const struct of_device_id *of_id = > - of_match_device(dw_mipi_dsi_dt_ids, dev); > - const struct dw_mipi_dsi_plat_data *pdata = of_id->data; > + const struct of_device_id *of_id; > + const struct dw_mipi_dsi_plat_data *pdata; > struct platform_device *pdev = to_platform_device(dev); > struct drm_device *drm = data; > struct dw_mipi_dsi *dsi; > struct resource *res; > int ret; > > + of_id = of_match_device(dw_mipi_dsi_dt_ids, dev); > + if (!of_id) { > + dev_err(dev, "Error: No device match found\n"); > + return -ENODEV; > + } > + > + pdata = of_id->data; > + > dsi = devm_kzalloc(dev, sizeof(*dsi), GFP_KERNEL); > if (!dsi) > return -ENOMEM; Hello You could use of_device_get_match_data() Regards Corentin Labbe From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932567AbdA0Mp5 (ORCPT ); Fri, 27 Jan 2017 07:45:57 -0500 Received: from mail-wj0-f195.google.com ([209.85.210.195]:33696 "EHLO mail-wj0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932415AbdA0MpB (ORCPT ); Fri, 27 Jan 2017 07:45:01 -0500 Date: Fri, 27 Jan 2017 13:43:19 +0100 From: Corentin Labbe To: Shailendra Verma Cc: Mark Yao , David Airlie , Heiko Stuebner , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, p.shailesh@samsung.com, ashish.kalra@samsung.com, Shailendra Verma Subject: Re: [PATCH] Gpu: drm: rockchip - Fix possible NULL derefrence. Message-ID: <20170127124319.GA13611@Red> References: <1485515510-3129-1-git-send-email-shailendra.v@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1485515510-3129-1-git-send-email-shailendra.v@samsung.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 27, 2017 at 04:41:50PM +0530, Shailendra Verma wrote: > of_match_device could return NULL, and so can cause a NULL > pointer dereference later. > > Signed-off-by: Shailendra Verma > --- > drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > index ca22e5e..dbb99cf 100644 > --- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > +++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c > @@ -1082,15 +1082,22 @@ static enum drm_mode_status rk3288_mipi_dsi_mode_valid( > static int dw_mipi_dsi_bind(struct device *dev, struct device *master, > void *data) > { > - const struct of_device_id *of_id = > - of_match_device(dw_mipi_dsi_dt_ids, dev); > - const struct dw_mipi_dsi_plat_data *pdata = of_id->data; > + const struct of_device_id *of_id; > + const struct dw_mipi_dsi_plat_data *pdata; > struct platform_device *pdev = to_platform_device(dev); > struct drm_device *drm = data; > struct dw_mipi_dsi *dsi; > struct resource *res; > int ret; > > + of_id = of_match_device(dw_mipi_dsi_dt_ids, dev); > + if (!of_id) { > + dev_err(dev, "Error: No device match found\n"); > + return -ENODEV; > + } > + > + pdata = of_id->data; > + > dsi = devm_kzalloc(dev, sizeof(*dsi), GFP_KERNEL); > if (!dsi) > return -ENOMEM; Hello You could use of_device_get_match_data() Regards Corentin Labbe