Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp1475066imc; Mon, 11 Mar 2019 14:49:22 -0700 (PDT) X-Google-Smtp-Source: APXvYqx6V9nl3Ok1PL9v2HBps2FjtnS3pcTXU/L+UTdqGdQIGEu3I2DYwzYnoRn42d5xHsgBK/e2 X-Received: by 2002:a63:f113:: with SMTP id f19mr1379237pgi.141.1552340962630; Mon, 11 Mar 2019 14:49:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552340962; cv=none; d=google.com; s=arc-20160816; b=YyUq9BzR3K5eTK7o6G+DKaWkzYYqBe7Q6jtp7BOgWhOki4uCFao5//UMe0KUuJHYqv AKqKhuImmbolx2jErY4rroqp+RU64YJ2eybyh03PblusU8kg5i5wkRXkd9Wg6gw7VCX2 K6Jvk0SG1glx02/R8bbXZzpX4UKYpLKj0c3xTLnHIFiOqgUZhDxT+24GIZEg4infrmZb PQR2hIzNHasOd7B6FsZaNCBsKzaFcau/mfX05IAdOp9C0xAwo66HuxJEyPSDfd0BEa2s z0c+1tlQFQIYvdvzGJp3idiExh6BM91ebOv+a0SNS7sdTc3SJPbsdhFf8gvH6yn+0n+5 WAnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=/M+lDF0gYp9kvUc8vgIi6X/myVPQaMwF1CtYDkBTzz0=; b=CkjQWGI0yM6tKbA9RNDy/OEX5AYvDM1BbkDI7P5a/575D8D/bc3I5aZyGQCy9GlZVZ rbymWyLtAsUERVD28nP6zER8MUw1KY+wobYO21FoDMw1iX4Fhi0MioCIDfgtHbeFH7wy 3XA7VgcUzgakzE4tKGN+TEZAu0ytgIsZ4TvN/WmXq70j1ah1xepeSyzWnqk6U1xixyXg AVsIxbm8fYxwDBo8hf+P4F94Ur+5qal1L9UOxe+gM00QaOFYA04v9NmK3xkl8zxVYeHf cfoBSDVHvi1hRr6x2w9LpkgEKaIjQ/LYazw+lhm2TBGEPsBCaTK9FBeOCCded7Y6esgM dBLA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m2si6042492pfj.111.2019.03.11.14.49.06; Mon, 11 Mar 2019 14:49:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728272AbfCKVrP (ORCPT + 99 others); Mon, 11 Mar 2019 17:47:15 -0400 Received: from asavdk4.altibox.net ([109.247.116.15]:37731 "EHLO asavdk4.altibox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727027AbfCKVrO (ORCPT ); Mon, 11 Mar 2019 17:47:14 -0400 Received: from ravnborg.org (unknown [158.248.194.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by asavdk4.altibox.net (Postfix) with ESMTPS id 9414B80395; Mon, 11 Mar 2019 22:47:09 +0100 (CET) Date: Mon, 11 Mar 2019 22:47:08 +0100 From: Sam Ravnborg To: Rodrigo Siqueira Cc: Maarten Lankhorst , Maxime Ripard , Sean Paul , David Airlie , Daniel Vetter , Gerd Hoffmann , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: Re: [PATCH] drm/atomic-helper: Validate pointer before dereference Message-ID: <20190311214708.GB24416@ravnborg.org> References: <20190311210120.fdixvenmqjoxuoqt@smtp.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190311210120.fdixvenmqjoxuoqt@smtp.gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-CMAE-Score: 0 X-CMAE-Analysis: v=2.3 cv=UpRNyd4B c=1 sm=1 tr=0 a=UWs3HLbX/2nnQ3s7vZ42gw==:117 a=UWs3HLbX/2nnQ3s7vZ42gw==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=pGLkceISAAAA:8 a=83PfsViYTA30QWSY9fAA:9 a=CjuIK1q_8ugA:10 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Rodrigo On Mon, Mar 11, 2019 at 06:01:20PM -0300, Rodrigo Siqueira wrote: > The function disable_outputs() and > drm_atomic_helper_commit_modeset_enables() tries to retrieve > helper_private from the target CRTC, for dereferencing some operations. > However, the current implementation does not check whether > helper_private is null and, if not, if it has a valid pointer to a dpms > and commit functions. This commit adds pointer validations before > trying to dereference the dpms and commit function. > > Signed-off-by: Rodrigo Siqueira > --- > drivers/gpu/drm/drm_atomic_helper.c | 30 ++++++++++++++++------------- > 1 file changed, 17 insertions(+), 13 deletions(-) > > @@ -1277,11 +1279,13 @@ void drm_atomic_helper_commit_modeset_enables(struct drm_device *dev, > if (new_crtc_state->enable) { > DRM_DEBUG_ATOMIC("enabling [CRTC:%d:%s]\n", > crtc->base.id, crtc->name); This DEBUG_ print is only relevant if the code actually do something in the following. So it seems more correct to fix the upper if () to: > if (new_crtc_state->enable && funcs != NULL) { > DRM_DEBUG_ATOMIC("enabling [CRTC:%d:%s]\n", ... The you also loose one indent and the calls are nicer. (If used "funcs != NULL", but this is a matter of taste). Sam