From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752121AbcLESUY (ORCPT ); Mon, 5 Dec 2016 13:20:24 -0500 Received: from mail-yw0-f175.google.com ([209.85.161.175]:34656 "EHLO mail-yw0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751573AbcLESUX (ORCPT ); Mon, 5 Dec 2016 13:20:23 -0500 MIME-Version: 1.0 In-Reply-To: <1480777902-7648-1-git-send-email-bianpan2016@163.com> References: <1480777902-7648-1-git-send-email-bianpan2016@163.com> From: Sean Paul Date: Mon, 5 Dec 2016 13:19:59 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 1/1] gpu: drm: qxl: fix use of uninitialized variable To: Pan Bian Cc: Dave Airlie , David Airlie , Gustavo Padovan , Masahiro Yamada , Daniel Vetter , Sumit Semwal , =?UTF-8?Q?Christian_K=C3=B6nig?= , dri-devel , Linux Kernel Mailing List Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Dec 3, 2016 at 10:11 AM, Pan Bian wrote: > In function qxl_release_alloc(), when kmalloc() returns a NULL pointer, > it returns value 0 and parameter *ret is uninitialized. 0 means no error > to the callers of qxl_release_alloc(). The callers keep going and will > try to reference the uninitialized variable. This patch fixes the bug, > returning "-ENOMEM" when kmalloc() fails. > > Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188911 > > Signed-off-by: Pan Bian Applied to drm-misc, with subject prefix tweak s_gpu: drm: qxl_drm/qxl_ Thanks! Sean > --- > drivers/gpu/drm/qxl/qxl_release.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/qxl/qxl_release.c b/drivers/gpu/drm/qxl/qxl_release.c > index cd83f05..e6daa70 100644 > --- a/drivers/gpu/drm/qxl/qxl_release.c > +++ b/drivers/gpu/drm/qxl/qxl_release.c > @@ -133,7 +133,7 @@ static long qxl_fence_wait(struct fence *fence, bool intr, signed long timeout) > release = kmalloc(size, GFP_KERNEL); > if (!release) { > DRM_ERROR("Out of memory\n"); > - return 0; > + return -ENOMEM; > } > release->base.ops = NULL; > release->type = type; > -- > 1.9.1 > >