Received: by 2002:a05:6a10:6d25:0:0:0:0 with SMTP id gq37csp1894971pxb; Mon, 13 Sep 2021 07:42:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzb+XHg1cAExXutgTN8SqV/atYanClYyAl+/wW835HWAudIIj/8XcbLNokYGgQx6RqhRUfx X-Received: by 2002:a6b:c80f:: with SMTP id y15mr9203528iof.80.1631544121450; Mon, 13 Sep 2021 07:42:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631544121; cv=none; d=google.com; s=arc-20160816; b=aAa4fODKKL7xAqXvV4Nh44o2LjNP56xYV1sy2S5fF0U4B+4ur8MkNSzT+IkW/Xc8pq zWEYioowuaHHKlQihQI4IdajWkkkzatMWKjgHqDoA8PtZjqPqmG972wND5IcLogMRbur M7hxQ+djYDmS9+cgjrdClEPwtS5YxaLhg1je3dhRkuZCf87T8BR3XYGgjNh7u7YyttXS TGJUea4p1SaBC1PxJD5Z6n3FknfwJZegxyAl8TsBELvVsPsEcyYntuhY9Y+E+64fIefd k4j/KgB9aBb7KRbldTWsbfkPGMpjQLWKtVNtAI9fuxK8BoJOdcZ+hvwJ+45opkdqrb7N n0dA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=0aNwZGWqvZhV2l9nIo/9JHdFVx5L41Dk7HiUl2yCh8A=; b=O6LHu/rzt6C+/R9FmcFTXI0HP55FfExX+4n/YiguV4jar6YzmmjZLizzjGGSiM6Zwy cvoYKkLF2uGHQI7Wl/RAAYVPB9sWQHV+9lezpeqCcgo+38cs+xU49GcYvhzWyDXoojaA OEIofkwnCfl8kjHB8bpcWWwdMWpMXopIuJsmGF1UIIzVywRLvUpegFz8Ax5fbJ2U6sV2 9i98Y35/8eNENuuZn5aaMLNYMJTCqqymb+CQoCaxkknOreehv5VfeeMLxFps9HqrBVgJ UwTDSUuehRlwrteuu9H9ASflQ5QRTQ/k+EeOuTaRdbnygK4g9ZdAGzuTUFhXh8sneQ0u sbUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=KQ2+qL0r; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k17si8211518jav.64.2021.09.13.07.41.46; Mon, 13 Sep 2021 07:42:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=KQ2+qL0r; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347723AbhIMOka (ORCPT + 99 others); Mon, 13 Sep 2021 10:40:30 -0400 Received: from mail.kernel.org ([198.145.29.99]:55800 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347648AbhIMOfR (ORCPT ); Mon, 13 Sep 2021 10:35:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 266FE61BE1; Mon, 13 Sep 2021 13:53:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1631541199; bh=KeooiQgSSIXv8xyjy6C2Uyn8PElVgxobJiA4JqUjvVg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KQ2+qL0raxWK5lb3ZhNidrHrwA7EC1VZtAz6AcI7gpl3kiQ3pWxNtpnZk4Ux42Zzt DpcCn3JeWakYEXdlG1RhtWLFmpv0xwkjVypx2br9LPR1KM/c8PxZKFna90IJSQmIVR pBsZVcUpMjQTBNHkj9TNo+sZ0ON0KD175UfCXZFs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Taehee Yoo , =?UTF-8?q?M=C3=A1rio=20Lopes?= , Sven Eckelmann , Sasha Levin Subject: [PATCH 5.14 171/334] debugfs: Return error during {full/open}_proxy_open() on rmmod Date: Mon, 13 Sep 2021 15:13:45 +0200 Message-Id: <20210913131119.128749401@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210913131113.390368911@linuxfoundation.org> References: <20210913131113.390368911@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sven Eckelmann [ Upstream commit 112cedc8e600b668688eb809bf11817adec58ddc ] If a kernel module gets unloaded then it printed report about a leak before commit 275678e7a9be ("debugfs: Check module state before warning in {full/open}_proxy_open()"). An additional check was added in this commit to avoid this printing. But it was forgotten that the function must return an error in this case because it was not actually opened. As result, the systems started to crash or to hang when a module was unloaded while something was trying to open a file. Fixes: 275678e7a9be ("debugfs: Check module state before warning in {full/open}_proxy_open()") Cc: Taehee Yoo Reported-by: Mário Lopes Signed-off-by: Sven Eckelmann Link: https://lore.kernel.org/r/20210802162444.7848-1-sven@narfation.org Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- fs/debugfs/file.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c index df00231d3ecc..7d162b0efbf0 100644 --- a/fs/debugfs/file.c +++ b/fs/debugfs/file.c @@ -179,8 +179,10 @@ static int open_proxy_open(struct inode *inode, struct file *filp) if (!fops_get(real_fops)) { #ifdef CONFIG_MODULES if (real_fops->owner && - real_fops->owner->state == MODULE_STATE_GOING) + real_fops->owner->state == MODULE_STATE_GOING) { + r = -ENXIO; goto out; + } #endif /* Huh? Module did not clean up after itself at exit? */ @@ -314,8 +316,10 @@ static int full_proxy_open(struct inode *inode, struct file *filp) if (!fops_get(real_fops)) { #ifdef CONFIG_MODULES if (real_fops->owner && - real_fops->owner->state == MODULE_STATE_GOING) + real_fops->owner->state == MODULE_STATE_GOING) { + r = -ENXIO; goto out; + } #endif /* Huh? Module did not cleanup after itself at exit? */ -- 2.30.2