From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 28B5EC4345F for ; Wed, 24 Apr 2024 20:44:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 871ED6B0201; Wed, 24 Apr 2024 16:44:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 821F06B0203; Wed, 24 Apr 2024 16:44:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 710866B020B; Wed, 24 Apr 2024 16:44:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 544656B0201 for ; Wed, 24 Apr 2024 16:44:38 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 0792DC0D28 for ; Wed, 24 Apr 2024 20:44:38 +0000 (UTC) X-FDA: 82045603836.30.410AA6B Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [217.70.183.201]) by imf03.hostedemail.com (Postfix) with ESMTP id C87DA20013 for ; Wed, 24 Apr 2024 20:44:35 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=none; spf=pass (imf03.hostedemail.com: domain of alex@ghiti.fr designates 217.70.183.201 as permitted sender) smtp.mailfrom=alex@ghiti.fr; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713991476; a=rsa-sha256; cv=none; b=6Xds1n19UB4Ds6FO4N5+pPbe91uO+wH/CGkDOHoCYcPazYkHKkK1W/5jPE4t9qbZa1fVIm HhcdjIvOCmPScUZjTJaccdcxaWBrYBNvmKZEO3cezxFHTEJjhaOwWAU7WLP6lzIHE1UXN4 t3sMgT3mkHZbVCbL0QziBESTTtDZp2Q= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=none; spf=pass (imf03.hostedemail.com: domain of alex@ghiti.fr designates 217.70.183.201 as permitted sender) smtp.mailfrom=alex@ghiti.fr; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713991476; 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; bh=Oi3FjoFK/Y38/SgO3PSqhksPDhFYPUTebApvBTgN0zo=; b=lxCYNdr06j0voBU6zTD7AfsH6CmBsgLC3LjCAca+oIFLgf0hFuyctLairFvt+NktKNfM4m 0rOIsYKbabSXUYrsHXtHKne5kvKdxHE7qIQvrgn1eQmx1s875aycihXdtt+e3WqKCTJlXP /D8Guk/qZaIocJMfqSnLux3Akmlhsn0= Received: by mail.gandi.net (Postfix) with ESMTPSA id 88D431BF205; Wed, 24 Apr 2024 20:44:32 +0000 (UTC) Message-ID: <3659aee7-8baf-442f-aa81-22bb6fd1a11d@ghiti.fr> Date: Wed, 24 Apr 2024 22:44:31 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] binfmt_flat: Fix corruption when not offsetting data start Content-Language: en-US To: Stefan O'Rear , linux-mm@kvack.org, linux-riscv@lists.infradead.org Cc: Eric Biederman , Kees Cook , Damien Le Moal , Greg Ungerer , Waldemar Brodkorb References: <20240326032037.2478816-1-sorear@fastmail.com> From: Alexandre Ghiti In-Reply-To: <20240326032037.2478816-1-sorear@fastmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-GND-Sasl: alex@ghiti.fr X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: C87DA20013 X-Stat-Signature: 9xsexrt1jf5ot9b54kpnocacmwkyuabr X-Rspam-User: X-HE-Tag: 1713991475-496098 X-HE-Meta: U2FsdGVkX1+9HXqNvHAFAJ6OcuSYdxwFx9r2hhudupg6pX451z8KyxGDL1d6oG2ezV/NS3Tvw/FroUWiAAuwiGARWNUXkHuI2/VhBrjcvJAJ729mYO+CIbV/TlL+gcI7mhXIQh5VZ7YcE+Yv2ifgog6iisWYYbt9X6S7r/0JtkHYASSDSkXriuKQ/sTvez+IkUIWr37V/qcXFPY8qTXf6K3UND3eNGJtrpOu+mw5gDQr13fGKvFlUlAXh5NZmLtrBig0xr3Jo3GM0uvA6wkYYo4Zba4UoWrn3FFPAfx9gtPdbdeJM7BKifaKyspjmV2IW3k9BGbbtmtYJ1gSboVGGpVkYXwQX9lpvHjBpmkNQX2/WmbEr0wxmiNFIauujJ7QGgJtsXes+Ry59Kqxd+zge4TWe8tgjMau7qVxqhl+RsjVeUYMUTBnYjgEwngJzLB1Is8/2zUWTxG0jDDtDIcazhQP7KpMozisy0Qpxmv4gCqHCjpoi0RC/lpfcH8TDn8giIQtyNJy7yu4ATeBY0RKANpkDsLMB2m+AisgfFVskt+zAiUSnGO3hJT0BcjI9LI+//jTmmnNa1OZ3tL9j/NrsQnCSxdOa2xOY+hYKQcEifDpikq8xjgtJ5G5Iu5Etc/DpqbGwdqIpPtxw1XiyZKc293ENWDaNRJYnpARcuXrcSavatvnetAjTylfzpj5i8nxZahmsIBds6KVu2K6L9RMXZSE+83WSW14IqFoP4mpTWwcp/c3YV1vxT6InEl+gRMGL1+YrzfmmO9KVdJ9pRY3Qb3xCPLL7lrgFnhPqwYa48+ToN+nxwD7a33b6MfHjTjSujCILjcLIIRFf9kFVZV3Mhc/lih2sCDA7uMWpDSyAgY48XfHBw+LyS4Q5cJxotEgxrU3EXo7ixi1anf4O1s4zPpNqQaQv3h+QZP5QefDe4NXvW6/pPq5zPgrzURZ7NpzTCFwo6rNoXKSy+ukaS6 ZV0uOiOU FRPMaozBHbs2064mEwmNimm7UrtB5BGgVj2sO659+w4Jf3H2wnN9rIFsMjyPYcaTw9qEeXFnjbLe6xdXTMIfgEjPSebewCtmYVdmTIaPUCS6/SRPIyaD2vWt4fqcj3lSDabPC2kVpm9KP//x3Ymzw7q2u6660nNz+kZwnVAOrEcGIqQ+xaYzIdVl5cJt8Y7X4vpjyC04PSlF6Ms/YVRQETABOm5u4+mKmf/zxkPRs7nJyUqpbZ1doD3BKc0MOPIBWcryVLowmDcr+lmQ9l8WTzSB/bkRImYIetzURJcXbNFwvoKwzSpD37PZW0KUTrza1QBJjNfevUnZLW0YsJ12c+P0YVA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000119, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi Stefan, On 26/03/2024 04:20, Stefan O'Rear wrote: > Commit 04d82a6d0881 ("binfmt_flat: allow not offsetting data start") > introduced a RISC-V specific variant of the FLAT format which does not > allocate any space for the (obsolescent) array of shared library > pointers. However, it did not disable the code which initializes the > array, resulting in the corruption of sizeof(long) bytes before the DATA > segment, generally the end of the TEXT segment. > > Use CONFIG_BINFMT_FLAT_NO_DATA_START_OFFSET to guard initialization the > shared library pointer region so that it will only be initialized if > space is reserved for it. > > Fixes: 04d82a6d0881 ("binfmt_flat: allow not offsetting data start") > Signed-off-by: Stefan O'Rear > Tested-by: Waldemar Brodkorb > --- > fs/binfmt_flat.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c > index c26545d71d39..70c2b68988f4 100644 > --- a/fs/binfmt_flat.c > +++ b/fs/binfmt_flat.c > @@ -879,6 +879,7 @@ static int load_flat_binary(struct linux_binprm *bprm) > if (res < 0) > return res; > > +#ifndef CONFIG_BINFMT_FLAT_NO_DATA_START_OFFSET > /* Update data segment pointers for all libraries */ > for (i = 0; i < MAX_SHARED_LIBS; i++) { > if (!libinfo.lib_list[i].loaded) > @@ -893,6 +894,7 @@ static int load_flat_binary(struct linux_binprm *bprm) > return -EFAULT; > } > } > +#endif > > set_binfmt(&flat_format); > I have this fix on my list for quite some time, will you respin a new version for 6.9? Thanks, Alex