From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v2] drm: check for NULL parameter in exported drm_get_format_name() function. Date: Wed, 23 Nov 2016 13:00:07 +0200 Message-ID: <87vavewjew.fsf@intel.com> References: <20161123105213.27674-1-Liviu.Dudau@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id A22CA6E7ED for ; Wed, 23 Nov 2016 11:00:22 +0000 (UTC) In-Reply-To: <20161123105213.27674-1-Liviu.Dudau@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Liviu Dudau , Eric Engestrom Cc: Daniel Vetter , LKML , DRI devel List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCAyMyBOb3YgMjAxNiwgTGl2aXUgRHVkYXUgPExpdml1LkR1ZGF1QGFybS5jb20+IHdy b3RlOgo+IGRybV9nZXRfZm9ybWF0X25hbWUoKSBkZS1yZWZlcmVuY2VzIHRoZSBidWYgcGFyYW1l dGVyIHdpdGhvdXQgY2hlY2tpbmcKPiBpZiB0aGUgcG9pbnRlciB3YXMgbm90IE5VTEwuIEdpdmVu IHRoYXQgdGhlIGZ1bmN0aW9uIGlzIEVYUE9SVC1lZCwgbGV0cwo+IHNhbml0aXNlIHRoZSBwYXJh bWV0ZXJzIGJlZm9yZSBwcm9jZWVkaW5nLgo+Cj4gdjI6IFVzZSBCVUdfT04oKSB0byBhbm5veSB1 c2VycyB0aGF0IGRpZCBub3QgcGFzcyB2YWxpZCBwYXJhbWV0ZXJzIHRvIGZ1bmN0aW9uLgo+Cj4g Rml4ZXM6IGIzYzExYWMyNjdkNDYxZDNkNSAoImRybTogbW92ZSBhbGxvY2F0aW9uIG91dCBvZiBk cm1fZ2V0X2Zvcm1hdF9uYW1lKCkpCj4gQ2M6IEVyaWMgRW5nZXN0cm9tIDxlcmljQGVuZ2VzdHJv bS5jaD4KPiBDYzogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgo+IENjOiBKYW5pIE5p a3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwu dmV0dGVyQGZmd2xsLmNoPgo+Cj4gU2lnbmVkLW9mZi1ieTogTGl2aXUgRHVkYXUgPExpdml1LkR1 ZGF1QGFybS5jb20+Cj4gLS0tCj4gSSBzdGlsbCB0aGluayBzYW5pdHkgY2hlY2tpbmcgdGhlIHBh cmFtZXRlcnMgb2YgYW4gZXhwb3J0ZWQgZnVuY3Rpb24gaXMgd29ydGgKPiBkb2luZywgZXZlbiBp ZiB0aGUgd2F5IG9uZSB0cmlnZ2VycyB0aGUgTlVMTCBwb2ludGVyIGNyYXNoIGlzIHByaXZpbGVk Z2VkLiBOb3QKPiBhIGJpZyBmYW4gb2YgdGhlIHZlcmJvc2l0eSBvZiBCVUdfT04oKSBhbmQgd291 bGQgcmF0aGVyIHNpbGVudGx5IHJlamVjdCBOVUxMIGJ1Zgo+IHBvaW50ZXIsIGJ1dCB0aGF0IGlz IGEgbWF0dGVyIG9mIHRhc3RlLgoKVGhlcmUgcmVhbGx5IGlzIG5vIG1lYW5pbmdmdWwgZGlmZmVy ZW5jZSBiZXR3ZWVuIGRvaW5nIEJVR19PTighYnVnKQp2cy4ganVzdCBsZXR0aW5nIGJ1Zi0+c3Ry IG9vcHMuIFRoZSBrZXJuZWwgaXMgZnVsbCBvZiBmdW5jdGlvbnMgdGhhdApleHBlY3Qgc2Vuc2li bGUgcG9pbnRlcnMsIGFuZCBJIGRvbid0IHNlZSB3aHkgdGhpcyBvbmUgaW4gcGFydGljdWxhcgpz aG91bGQgYmUgc28gc3BlY2lhbCB0byB3YXJyYW50IGEgQlVHX09OKCkuCgpCUiwKSmFuaS4KCj4K Pgo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jIHwgMiArKwo+ICAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9m b3VyY2MuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMKPiBpbmRleCA5MGQyY2M4Li42 ZDgwMjM5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jCj4gQEAgLTg1LDYgKzg1LDggQEAgRVhQT1JU X1NZTUJPTChkcm1fbW9kZV9sZWdhY3lfZmJfZm9ybWF0KTsKPiAgICovCj4gIGNvbnN0IGNoYXIg KmRybV9nZXRfZm9ybWF0X25hbWUodWludDMyX3QgZm9ybWF0LCBzdHJ1Y3QgZHJtX2Zvcm1hdF9u YW1lX2J1ZiAqYnVmKQo+ICB7Cj4gKwlCVUdfT04oIWJ1Zik7Cj4gKwo+ICAJc25wcmludGYoYnVm LT5zdHIsIHNpemVvZihidWYtPnN0ciksCj4gIAkJICIlYyVjJWMlYyAlcy1lbmRpYW4gKDB4JTA4 eCkiLAo+ICAJCSBwcmludGFibGVfY2hhcihmb3JtYXQgJiAweGZmKSwKCi0tIApKYW5pIE5pa3Vs YSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935336AbcKWLBG (ORCPT ); Wed, 23 Nov 2016 06:01:06 -0500 Received: from mga09.intel.com ([134.134.136.24]:32167 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935098AbcKWLBF (ORCPT ); Wed, 23 Nov 2016 06:01:05 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,537,1473145200"; d="scan'208";a="789872028" From: Jani Nikula To: Liviu Dudau , Eric Engestrom Cc: David Airlie , DRI devel , LKML , Rob Clark , Daniel Vetter Subject: Re: [PATCH v2] drm: check for NULL parameter in exported drm_get_format_name() function. In-Reply-To: <20161123105213.27674-1-Liviu.Dudau@arm.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20161123105213.27674-1-Liviu.Dudau@arm.com> Date: Wed, 23 Nov 2016 13:00:07 +0200 Message-ID: <87vavewjew.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 23 Nov 2016, Liviu Dudau wrote: > drm_get_format_name() de-references the buf parameter without checking > if the pointer was not NULL. Given that the function is EXPORT-ed, lets > sanitise the parameters before proceeding. > > v2: Use BUG_ON() to annoy users that did not pass valid parameters to function. > > Fixes: b3c11ac267d461d3d5 ("drm: move allocation out of drm_get_format_name()) > Cc: Eric Engestrom > Cc: Rob Clark > Cc: Jani Nikula > Cc: Daniel Vetter > > Signed-off-by: Liviu Dudau > --- > I still think sanity checking the parameters of an exported function is worth > doing, even if the way one triggers the NULL pointer crash is priviledged. Not > a big fan of the verbosity of BUG_ON() and would rather silently reject NULL buf > pointer, but that is a matter of taste. There really is no meaningful difference between doing BUG_ON(!bug) vs. just letting buf->str oops. The kernel is full of functions that expect sensible pointers, and I don't see why this one in particular should be so special to warrant a BUG_ON(). BR, Jani. > > > drivers/gpu/drm/drm_fourcc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c > index 90d2cc8..6d80239 100644 > --- a/drivers/gpu/drm/drm_fourcc.c > +++ b/drivers/gpu/drm/drm_fourcc.c > @@ -85,6 +85,8 @@ EXPORT_SYMBOL(drm_mode_legacy_fb_format); > */ > const char *drm_get_format_name(uint32_t format, struct drm_format_name_buf *buf) > { > + BUG_ON(!buf); > + > snprintf(buf->str, sizeof(buf->str), > "%c%c%c%c %s-endian (0x%08x)", > printable_char(format & 0xff), -- Jani Nikula, Intel Open Source Technology Center