Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756444AbcKVRcG (ORCPT ); Tue, 22 Nov 2016 12:32:06 -0500 Received: from mga14.intel.com ([192.55.52.115]:30588 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752965AbcKVRcE (ORCPT ); Tue, 22 Nov 2016 12:32:04 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,533,1473145200"; d="scan'208";a="789562556" Date: Tue, 22 Nov 2016 19:31:57 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Rob Clark Cc: Liviu Dudau , Jani Nikula , Daniel Vetter , Eric Engestrom , LKML , DRI devel Subject: Re: [PATCH] drm: check for NULL parameter in exported drm_get_format_name() function. Message-ID: <20161122173157.GD31595@intel.com> References: <20161122164106.31852-1-Liviu.Dudau@arm.com> <20161122165017.GC31595@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: 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 Content-Length: 2037 Lines: 63 On Tue, Nov 22, 2016 at 12:23:59PM -0500, Rob Clark wrote: > On Tue, Nov 22, 2016 at 11:50 AM, Ville Syrj?l? > wrote: > > On Tue, Nov 22, 2016 at 04:41:06PM +0000, 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. > >> > >> 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 > >> --- > >> drivers/gpu/drm/drm_fourcc.c | 3 +++ > >> 1 file changed, 3 insertions(+) > >> > >> diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c > >> index 90d2cc8..0a3ff0b 100644 > >> --- a/drivers/gpu/drm/drm_fourcc.c > >> +++ b/drivers/gpu/drm/drm_fourcc.c > >> @@ -85,6 +85,9 @@ EXPORT_SYMBOL(drm_mode_legacy_fb_format); > >> */ > >> const char *drm_get_format_name(uint32_t format, struct drm_format_name_buf *buf) > >> { > >> + if (!buf) > >> + return NULL; > >> + > > > > Seems rather pointless to me. Why would you ever pass NULL to this guy? > > perhaps BUG_ON(!buf)... And how does that differ from just buf->foo? > > BR, > -R > > >> snprintf(buf->str, sizeof(buf->str), > >> "%c%c%c%c %s-endian (0x%08x)", > >> printable_char(format & 0xff), > >> -- > >> 2.10.2 > >> > >> _______________________________________________ > >> dri-devel mailing list > >> dri-devel@lists.freedesktop.org > >> https://lists.freedesktop.org/mailman/listinfo/dri-devel > > > > -- > > Ville Syrj?l? > > Intel OTC > > _______________________________________________ > > dri-devel mailing list > > dri-devel@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Ville Syrj?l? Intel OTC