Received: by 2002:a05:6a10:6d25:0:0:0:0 with SMTP id gq37csp1863063pxb; Mon, 13 Sep 2021 07:09:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxROl8mSDMqqIOBRW1s4BKvJ825aaJnv7bDjG+0PDD89xn/FN4p/ZmoN6uBMLnxqC789s6N X-Received: by 2002:a92:c56c:: with SMTP id b12mr8434401ilj.7.1631542153721; Mon, 13 Sep 2021 07:09:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631542153; cv=none; d=google.com; s=arc-20160816; b=BL1vhBpK7XBZALdW55KR62mP/umj2/CgjrhP+UF4glIh7e9KM+DlbPWHrQ/Au7YcSb 0ic8aspqzGKHf3bcGrZxDT3vQv8Iy6AB8VOx1E6/Slc0knC5p1mV9T6mCSNUwxLKqI7u szAoftw+qzd2QwnYN38PZhWayY6Wq/kpaaCOBET7E7sFYnfOIGblpwVQRbsPsmRjydTM lux7iIjVbSSFzZdsR/FmJdP85VfFvCSDzwIk4gu3kKlceVh/0BAx7dq8Z3B1QOsob7vb 2/a322kTVe0X3tuKgBHxaVIzmOsuLmYkKKhXbnuRBkDgGe7R5Nmcw+UZIZW77i9d0wix 5gqA== 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=yMl9qqBo8SG/bmHSK2dZz3XQ7dTOhx6nSIif3Mdek6g=; b=fEsc15kSDhhimQqArXcsSFQCTZBkVnV0lULNVFa2Y8L/vOuAJbQPGTM+LbG1L06zfR 67rqdFMc6E0wvqvQ4qs6bHat5YjPclIcJoiZo1LkMfCXSOgzNKxc8np5JwHjCd8VSOfu xPTMzFQeMSF9u+xdjn137AY2Zt9Np4OY8zmS2iCKUaPQyXyC8NwVDBHkaXugzjxuPDm3 5YIJHFKz/8JE5U46f34tjH1a0zFqj2Ec1IT852NBlMlraDQNcjhiUfpEnMJy71NX7kgN Gd2iOBCP9Xyo7gwVvP3VCLHJXZjwPfNIjgjOEHmtIU1+UbLPXZwY4Pimjsvn18sJdBzp MwMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=BDifMeLd; 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 y7si7272414jae.125.2021.09.13.07.09.00; Mon, 13 Sep 2021 07:09:13 -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=BDifMeLd; 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 S245055AbhIMOHz (ORCPT + 99 others); Mon, 13 Sep 2021 10:07:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:54576 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344244AbhIMOEl (ORCPT ); Mon, 13 Sep 2021 10:04:41 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 95F4861251; Mon, 13 Sep 2021 13:39:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1631540348; bh=C8eNd1MQTyJsaVplq+bBpnJhdrxZ17E1OuFJjZatXgE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BDifMeLdMtRdXujYaZ/sFMXksDVzU3i7bL5+LoNB8Y4Jgmb04PO4GxHvjoMuO2Wxm RnhtMj/so2xuJBHtL/CLeqUcwA+H4mIym7QeTfqp6WHeimEXk7Cc1EQygcH7MMGMmq KQHnW6RVYSFwC9Ad6UvjUbzQnEVrumlWQsk6b1lg= 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.13 155/300] debugfs: Return error during {full/open}_proxy_open() on rmmod Date: Mon, 13 Sep 2021 15:13:36 +0200 Message-Id: <20210913131114.642784108@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210913131109.253835823@linuxfoundation.org> References: <20210913131109.253835823@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 ba7c01cd9a5d..36f2dbe6061f 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