Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1927824imm; Thu, 12 Jul 2018 10:03:57 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdzlJ5FDpWil7Dj8LtMEGN43n8VLoN0ZQh5nXnXdpTrdT42qbMPcEaFR0hNibP5OyhQASq6 X-Received: by 2002:a62:3184:: with SMTP id x126-v6mr3278556pfx.49.1531415037059; Thu, 12 Jul 2018 10:03:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531415037; cv=none; d=google.com; s=arc-20160816; b=qQUD0wzuc1XmbvG/suPfYiQTINciWO1nwpm3gaEUeEYa47Grw+CFjOY6MAq0PbFO3U HGXQ3IOV1gZIp22GAfYUfVQ2gnlSsgaizM8V1/ag6iXIn7qquDoxPV2z4wzM7j1/H64N /nyYYJjjlfEkpw5VYsx3VO7QY6wo6qpvIbJsmcOcvGBmaratY/Zj24CsmDN93Ei7m0Vx D11hE8G0mRtRlxPC5rCfyo2KzYPsgpmZaWQBFcusOYfttyq6NXkVtAkspEA+VKssagZv awNhCT6XATImDVE6J/7X1Xt/gjeCVNOaybIcf6jGlHFCpQvdNYNRutKbg3R1fuTbZiVj Is9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=8GvpVwgW4+g2Wu9ikkUD3Q93o0+ZnUS76PlTWUN8n+Y=; b=Fa7U+ikgm3zjVQJO6N72MEbmNBbhXDInrDQXRySpXVSXEkv4mS0498X1Gje/Cde6NK sWXsrsTZ4RBSxbPujH7ngUhOeA3/xJ4HzcyZ2lklF187dxZAjOiz5S+QRzD3/uCzT4EL zz2UEhrcmMHOWBznRIO6yk579tv+pTGYuTe/Tm3P7kPUweGR+1O6RvaJAhE1yRebjwFX FwfIle2ZwbgXCFd+XJg3Y1L4ArvW3AOt2cXaigH0e3NB91poNkAMJrFs5zgbxK181XRX CYdylSRRkUtiKtl6J77IKRioi3vhhRgz7LbRg93JG+nKHA+gOLAuHxvoq1HBAxPU8IYf PTOg== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b23-v6si21175437pls.341.2018.07.12.10.03.41; Thu, 12 Jul 2018 10:03:57 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732384AbeGLRN1 (ORCPT + 99 others); Thu, 12 Jul 2018 13:13:27 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:34826 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726912AbeGLRN0 (ORCPT ); Thu, 12 Jul 2018 13:13:26 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A06B34074452; Thu, 12 Jul 2018 17:03:02 +0000 (UTC) Received: from whitewolf.lyude.net.com (ovpn-120-214.rdu2.redhat.com [10.10.120.214]) by smtp.corp.redhat.com (Postfix) with ESMTP id 42E3510FFE4D; Thu, 12 Jul 2018 17:03:02 +0000 (UTC) From: Lyude Paul To: nouveau@lists.freedesktop.org Cc: Karol Herbst , Ben Skeggs , David Airlie , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/3] drm/nouveau: Fix runtime PM leak in drm_open() Date: Thu, 12 Jul 2018 13:02:52 -0400 Message-Id: <20180712170256.13018-2-lyude@redhat.com> In-Reply-To: <20180712170256.13018-1-lyude@redhat.com> References: <20180712170256.13018-1-lyude@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Thu, 12 Jul 2018 17:03:02 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Thu, 12 Jul 2018 17:03:02 +0000 (UTC) for IP:'10.11.54.3' DOMAIN:'int-mx03.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'lyude@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Noticed this as I was skimming through, if we fail to allocate memory for cli we'll end up returning without dropping the runtime PM ref we got. Additionally, we'll even return the wrong return code! (ret most likely will == 0 here, we want -ENOMEM). Signed-off-by: Lyude Paul Reviewed-by: Lukas Wunner --- drivers/gpu/drm/nouveau/nouveau_drm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c index 0452b18d36b9..0f668e275ee1 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -919,8 +919,10 @@ nouveau_drm_open(struct drm_device *dev, struct drm_file *fpriv) get_task_comm(tmpname, current); snprintf(name, sizeof(name), "%s[%d]", tmpname, pid_nr(fpriv->pid)); - if (!(cli = kzalloc(sizeof(*cli), GFP_KERNEL))) - return ret; + if (!(cli = kzalloc(sizeof(*cli), GFP_KERNEL))) { + ret = -ENOMEM; + goto done; + } ret = nouveau_cli_init(drm, name, cli); if (ret) -- 2.17.1