Message ID | 20250210085202.14943-2-vbabka@suse.cz (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF59CC02198 for <linux-mm@archiver.kernel.org>; Mon, 10 Feb 2025 08:52:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 246DC280002; Mon, 10 Feb 2025 03:52:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1F708280001; Mon, 10 Feb 2025 03:52:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 098A2280002; Mon, 10 Feb 2025 03:52:08 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id DF98B280001 for <linux-mm@kvack.org>; Mon, 10 Feb 2025 03:52:07 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 771D91A05FF for <linux-mm@kvack.org>; Mon, 10 Feb 2025 08:52:07 +0000 (UTC) X-FDA: 83103417894.10.59AFD78 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf28.hostedemail.com (Postfix) with ESMTP id 30E94C0005 for <linux-mm@kvack.org>; Mon, 10 Feb 2025 08:52:05 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=jcLSpBn4; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=jgzFjWA+; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=jcLSpBn4; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=jgzFjWA+; spf=pass (imf28.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739177525; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=X7ImRDEq0mvCvZM+o+oq2w3SAOJ+hD1BFuS0nDAv2EA=; b=eiORfL0geKcR6UJDuCbNcUYFg+XBen5rQNt5p2ej5JsHdt9rQJspfWnIxk7WmLsNwAUyMI LBchf2XktmdaJ/Gch95AofjXB6pGTKVLmN1lCtik0puksVetMR6PS/bZ5qgFAnAjVRxkZb PP28WHyePwX4fK1zfAc7xiEijeZBa28= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739177525; a=rsa-sha256; cv=none; b=qEz9OFAluxXvLMq1m4zQuogOZmQifIadPfLQPOd0tSdSwcRhzOSSZuZ3CHNAuTzGx29CJf nhGFtE796x/rPhd3IYVwuo7H6NX5NubcmvH9DeY3/g21YqKxefXfa/OCp8SCok+TMDfGZF IpP9SVEgZu7I9X6NXP1YFugegVGKpbc= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=jcLSpBn4; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=jgzFjWA+; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=jcLSpBn4; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=jgzFjWA+; spf=pass (imf28.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 91CC41F37E; Mon, 10 Feb 2025 08:52:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1739177523; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X7ImRDEq0mvCvZM+o+oq2w3SAOJ+hD1BFuS0nDAv2EA=; b=jcLSpBn4p1UMOPYdW+8hqUByIr2BdL8MqW4gx999LZGDMCotBeiIyxhkPzEpoalBFlPYNs 3TQVYh6QZhaLzZT/srK7Bqb0sxBoU7GE/xHb5u9y9ah2y93pG9MovMT0v8dtZGd17ts034 qlIl99fJ3Xv1ny2HJWheNoVX+crd7yE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1739177523; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X7ImRDEq0mvCvZM+o+oq2w3SAOJ+hD1BFuS0nDAv2EA=; b=jgzFjWA+T5ZWTCqA3ZauMbMytyB2f96a6FyrBcJamtP5wn8hyf5YsXVNyqBrScn3oMiYSg ogUzS1ZOqB97zdCQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1739177523; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X7ImRDEq0mvCvZM+o+oq2w3SAOJ+hD1BFuS0nDAv2EA=; b=jcLSpBn4p1UMOPYdW+8hqUByIr2BdL8MqW4gx999LZGDMCotBeiIyxhkPzEpoalBFlPYNs 3TQVYh6QZhaLzZT/srK7Bqb0sxBoU7GE/xHb5u9y9ah2y93pG9MovMT0v8dtZGd17ts034 qlIl99fJ3Xv1ny2HJWheNoVX+crd7yE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1739177523; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X7ImRDEq0mvCvZM+o+oq2w3SAOJ+hD1BFuS0nDAv2EA=; b=jgzFjWA+T5ZWTCqA3ZauMbMytyB2f96a6FyrBcJamtP5wn8hyf5YsXVNyqBrScn3oMiYSg ogUzS1ZOqB97zdCQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 78A0D13707; Mon, 10 Feb 2025 08:52:03 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id GtoIHTO+qWcoKgAAD6G6ig (envelope-from <vbabka@suse.cz>); Mon, 10 Feb 2025 08:52:03 +0000 From: Vlastimil Babka <vbabka@suse.cz> To: miklos@szeredi.hu Cc: christian@heusel.eu, joannelkoong@gmail.com, josef@toxicpanda.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, mszeredi@redhat.com, regressions@lists.linux.dev, willy@infradead.org, Vlastimil Babka <vbabka@suse.cz>, =?utf-8?q?Mantas_Mik?= =?utf-8?q?ul=C4=97nas?= <grawity@gmail.com>, stable@vger.kernel.org Subject: [PATCH] fuse: prevent folio use-after-free in readahead Date: Mon, 10 Feb 2025 09:52:03 +0100 Message-ID: <20250210085202.14943-2-vbabka@suse.cz> X-Mailer: git-send-email 2.48.1 In-Reply-To: <CAJfpegtaTET+R7Tc1MozTQWmYfgsRp6Bzc=HKonO=Uq1h6Nzgw@mail.gmail.com> References: <CAJfpegtaTET+R7Tc1MozTQWmYfgsRp6Bzc=HKonO=Uq1h6Nzgw@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: 30E94C0005 X-Rspamd-Server: rspam07 X-Stat-Signature: z6frbj1np3i7o4x8xccbhw9f3wwun77h X-HE-Tag: 1739177524-267158 X-HE-Meta: U2FsdGVkX1+YVM/RdBPhNMzXeRTBzALjr1Ri3mfPYGSy2Se7CNMplKjxuo2TnrRlBppNWIyri7rT8q6feAUeWVLFU+SDXJJprcCUZZa+WRsCfR4mXyJh+oLlf9Ajnny5DsyihziefK4u1wNcWe+Y9ANJ1CHb7e+onIN3VZdArkUcYmv5EXWmG8ueBC19FPDTMThyEjJzzvbWol5UwMuaUw3WXpxsBIU3ePAOeoUaYcoY+nPMfSjjB/gdhGAZ1U6ZCnDtlw/WGxdQ7eJrI3LxI7A7ZUQqRDehZlPq+WkkiiNWOok+GvuS1kPPI6jeQJIJo7wZzwk8WwCOSXQIqnf+TBbEEdJy3hcMvlgJcp6zZgkj2N4ed7s2nGek70MP7WDt0riLlIuxdufcNrELIbmKHi5gSg3T1Q+cttCg44bQVsoQdsDPb21hhmZPPtJDJ+l6YIYIP6sKshBG2wMOVSSWvRrNkOMg/SudVREra5vIe7p/rG4UHH/Q0MylWtYnFXJpw/jVDT7lhumNTCPkVZiu1oTpgn8wUhh7i5SuEJU2bSAbG2cazJBjGNpxS0TL67wcecATxpjQp7BzhWd15JcSc7pwC9uOzNOyFHGvm6KgsK2QhnleGv5PxTWC8IChZ75W1kDDv4ztpAcUC/PF7GV5CvLwRkZuhlxT/E+OmxRjncVQhe21TzLffPr4WMbJv/hktJgIQSE+w9k8NrFxZDZNBzkknm45wZkWTBOTH9RCh7y/XJJMbKjF8LKaKAbIzde4XTNnRJc77xTqusaNhA3LKXcWXJLo4jk7HGGVAqpadUrFA0ky0IJmKiSfdl8d+8HdCg3D1Z/Y/N4ZlQPOhsAq/zlLFP4OEu9+d1Po1xes1EieTmpQ4LvgjxDIJU/nVCmun1MYMq9Cd7xQcq0bIJp42YcFp8NQ9nzHUMTJyChh4L3twqVPHvxCb0/E+VCF45DZhwUaFLBYmey8GXIjOeJ lUswqHR3 wlPgJj77nnGZsiZ13xnB/3RCt1X/kJItVsZR14UhCO2joZl+bQDwpJxv+WEeYwEGkA4q5T6YmEjZ+J2kG9WcdCfiSXgOIAQ32iAfJ6nCKfpHK92Vu/jTg/2K9pwVcCUiYS6S+acP4Zc3ESEjAQdS7K23jhLBAFHxcQk1f6yEVJ8aAUWLGgQluYp8aDmQ7Sc9pRwVlL8Npazwh42sCTnO68CDhK94Dipis3Z0yuDQaKiNfQ1sk4aZN+6ZkT1LYRT4yq72YTUFGe/NhSKC+fwg5hnJDF5l1EFJnfrJYyk4oCfpCaZrF8w6buJu1MZvCQBOOVI9UC+FLSpZQSkYR9BR0W/TWqlWYMZoAvvsFjHnlRJ0u7TXiYIruVx6Wttkr3pD0NlKggIq3f7L4HzwcsajCNRuWVkjp4Kgd2nL2JeOitQfqgo6LbC2fNFu7dcERDPlLedqSg8F9N/Ri/Ymh/Wl2ujDzLfPQXjqvnxFkZW1uCfZ2EJO5tDNfmkOZBp+zua1oZWgPjhWo35FBNHg= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: <linux-mm.kvack.org> List-Subscribe: <mailto:majordomo@kvack.org> List-Unsubscribe: <mailto:majordomo@kvack.org> |
Series |
fuse: prevent folio use-after-free in readahead
|
expand
|
diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 7d92a5479998..a40d65ffb94d 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -955,8 +955,10 @@ static void fuse_readpages_end(struct fuse_mount *fm, struct fuse_args *args, fuse_invalidate_atime(inode); } - for (i = 0; i < ap->num_folios; i++) + for (i = 0; i < ap->num_folios; i++) { folio_end_read(ap->folios[i], !err); + folio_put(ap->folios[i]); + } if (ia->ff) fuse_file_put(ia->ff, false); @@ -1048,7 +1050,7 @@ static void fuse_readahead(struct readahead_control *rac) ap = &ia->ap; while (ap->num_folios < cur_pages) { - folio = readahead_folio(rac); + folio = __readahead_folio(rac); ap->folios[ap->num_folios] = folio; ap->descs[ap->num_folios].length = folio_size(folio); ap->num_folios++;