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 24D49D1D87B for ; Tue, 15 Oct 2024 15:59:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B8BD86B0083; Tue, 15 Oct 2024 11:59:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B3C356B0088; Tue, 15 Oct 2024 11:59:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A03B26B0089; Tue, 15 Oct 2024 11:59:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 770A06B0083 for ; Tue, 15 Oct 2024 11:59:56 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 69DA5AC72A for ; Tue, 15 Oct 2024 15:59:38 +0000 (UTC) X-FDA: 82676297340.21.6A536D7 Received: from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net [217.70.183.193]) by imf20.hostedemail.com (Postfix) with ESMTP id D7F491C0021 for ; Tue, 15 Oct 2024 15:59:44 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=krisman.be header.s=gm1 header.b=gHZ4donL; spf=pass (imf20.hostedemail.com: domain of gabriel@krisman.be designates 217.70.183.193 as permitted sender) smtp.mailfrom=gabriel@krisman.be; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729007921; 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=muVbXj6XjdM0+48mRJ+sHlgnyRTe+ujByi/N8a3eBTU=; b=oxkf5Xq9BwMQvdJNxe9hOmDHXkQwHpPJmKPOUhk5Vy/qY7Ls/OEHdAWdjMHVDg7mcXnUV+ XmHVIbmizppx0SYC0g9FEv5FA1mVKfHblboV0/eTJwfI6zBBUa671rHQt12AJnboluV9GE 4MK7hXfqz5/qFNr/OBCQrg0CHw0VRDA= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=krisman.be header.s=gm1 header.b=gHZ4donL; spf=pass (imf20.hostedemail.com: domain of gabriel@krisman.be designates 217.70.183.193 as permitted sender) smtp.mailfrom=gabriel@krisman.be; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729007921; a=rsa-sha256; cv=none; b=CJMz1Nl/sJitugxzrYQyUYy+y7SuxLRaqogUcKubEY+rtguVoanEb6A/f+XD91KIVswJWj TMoA/UzJ8ZghclyCoh5zpFQKhXIhg3xYE69rPQBFn5jYoaL8ApLEXMfgjS8SI4/nVwV3pL qNXOn5crqq0dBLMKdkmTgRuau2LpReQ= Received: by mail.gandi.net (Postfix) with ESMTPSA id 1A7E3240003; Tue, 15 Oct 2024 15:59:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=krisman.be; s=gm1; t=1729007992; h=from:from: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=muVbXj6XjdM0+48mRJ+sHlgnyRTe+ujByi/N8a3eBTU=; b=gHZ4donLANwwj7WEZd0j8tA3ic8bZf2ia6q3HlhTGiET+Nvgh3TjDYlHXDistcF+lyHcx2 K0qrxStda8Eaw46w7rFD+mE5WWeXz86nJ/rdcqf4KW8x7aRh8RY0xKv0MhmQB/IYWJIOkH vSYxKazzw+dMgcNmipFPOlMp0aeRSfpjfHdvgRLzAhiIdVV5VjEEIYgW2MaT91tyOhb9V7 0QwsOwXm0Y32jnBFs52zUfvQC8j8Lbx45RjU/hdZMntyh5dWa11406j3HEDbsTtdVoRNAU bWTDsEOH8FtsM0mwmj7RBwRUOepKNZt8+Y0Glwd+RaU+SntsCTlxJ0ZXfT7Img== From: Gabriel Krisman Bertazi To: =?utf-8?Q?Andr=C3=A9?= Almeida Cc: Alexander Viro , Christian Brauner , Jan Kara , Theodore Ts'o , Andreas Dilger , Hugh Dickins , Andrew Morton , Jonathan Corbet , smcv@collabora.com, kernel-dev@igalia.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-ext4@vger.kernel.org, linux-mm@kvack.org, linux-doc@vger.kernel.org Subject: Re: [PATCH v6 01/10] libfs: Create the helper function generic_ci_validate_strict_name() In-Reply-To: <20241010-tonyk-tmpfs-v6-1-79f0ae02e4c8@igalia.com> (=?utf-8?Q?=22Andr=C3=A9?= Almeida"'s message of "Thu, 10 Oct 2024 16:39:36 -0300") References: <20241010-tonyk-tmpfs-v6-0-79f0ae02e4c8@igalia.com> <20241010-tonyk-tmpfs-v6-1-79f0ae02e4c8@igalia.com> Date: Tue, 15 Oct 2024 11:59:48 -0400 Message-ID: <87bjzls6ff.fsf@mailhost.krisman.be> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-GND-Sasl: gabriel@krisman.be X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: D7F491C0021 X-Stat-Signature: ru5f779n3okpa8hnno5dq37df3a9ng4u X-HE-Tag: 1729007984-53522 X-HE-Meta: U2FsdGVkX19FKNkep+39QlY4VDZ4kx5Tk7thQQ+z0i6I+eQVV48VRoFcGg0zv4p/7KcMj8CYIHdCJ1AyE9myrLR7Efh4q1OGqSoPYmoHecyMGxfMen84qmz5M4tVwqvvdbVvf/SP5p6TCX58SF0ij+DXfD9FLovvDhwSwHMkfwXuDmsKECWtAidj+2uF2F6FkwpTzPXTCRew8aRyHxVWA3wOoNHGTf8fJi+ajTURQNt46Swm/Z7WBmkoAUhaydLedqgVqoLJ4cZOhjrfc8AYhwQsGLIbief1wHLHB6YTgCk8wlPT31h/dKD8NLu5+n0afISu7nBABqTYBLBE0T+nrvJIPeaOKqK+77EYb5fmPHxK2HAE3DUIwjYLjO0PUaL0Uuo5UxsyB0pCAH/bBito2G+nROR2vjqSMQ9C2Cr56zoeh+6vDnUxHn6vwcdztzNZ/5C8dNzyDkG5a1/NI/gwrY4Eeuk68DCRvSdl0yx422l54Y64jZcXcGRBwK+twjD+PNxmt94JYzFwww85plminzlxMSbQMYI0ABCMwfJIPNmZOaVxBoAdDWh2vSU1BbtorB8y4/QCzKEzmwGWoNi9nedZfYN/+3RR7hrrCEM5bXI6jfAaYA776hjZGYxkeNFE1cyiRWTsKyDe+9dwDZqzbpw6jh8bjLPf5+bfx57PNP2NcBHo6AXxag2KYTLuptXdAUxwsYt8dqHj0GgZJhDbGvPp8dJz1qLg3VqzchGb2/vVvORk7Vv7KSTaCWXr/NHkZCMyrobZkvWdbI/VTqHrV2hK3JCqJImTZZJ4ekf/2W9v1e8NOLJ0od/G7wS34YT1lhdo/SEUmCvAyG8msz/4Ov4KwG1dA+R3YjlMy0pMSFqL3xC5mELWLXXSSRb4fA6SC9nCcU55LGoqd0OFFmHtjv/N1sOiDOzVCCQw6Y17MKKj24++YUBoMkgPDy5ANtHaCnUimfqh+me9VeIAPws WT7Rkta3 RzfGGhHDaTbjUiglUWXOTRUxVYLDqk1I5DJA7HewOX5RSexgTJL5u5hs+E4qLRltN/9wfAtzxq7tT8w+rbPld91n+Q4Gh1dKWVUkEZXBjD9GlsUDO5DN/V1SwQQHVAsixGHl1Na2KIRGXmhXWv5G5CQ3+v8+V2CygniAy+dCQgVOfrKyxwFhgHPG0oBCI2AoQPdgkFbizUWUl6OkbHf7NePPYZwWLQr5rSDGfWq8Odr0su6uV5ERDxO5ggKzdOL77jjyFCnbZ62a8P2FZuNiQBuU2VyFEsoslcoxAPS45dhPjLD7avW3HMnYCvaMsUk8vXplWxhpdRCKaIEjKnO9spkpxvg== 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: List-Subscribe: List-Unsubscribe: Andr=C3=A9 Almeida writes: > +static inline bool generic_ci_validate_strict_name(struct inode *dir, st= ruct qstr *name) > +{ > + if (!IS_CASEFOLDED(dir) || !sb_has_strict_encoding(dir->i_sb)) > + return true; > + > + /* > + * A casefold dir must have a encoding set, unless the filesystem > + * is corrupted > + */ > + if (WARN_ON_ONCE(!dir->i_sb->s_encoding)) > + return true; > + > + return utf8_validate(dir->i_sb->s_encoding, name); There is something fishy here. Concerningly, the fstests test doesn't catch it. utf8_validate is defined as: int utf8_validate(const struct unicode_map *um, const struct qstr *str) Which returns 0 on success and !0 on error. Thus, when casting to bool, the return code should be negated. But generic/556 doesn't fail. That's because we are over cautious, and also check the string at the end of generic_ci_d_hash. So we never really reach utf8_validate in the tested case. But if you comment the final if in generic_ci_d_hash, you'll see this patchset regresses the fstests case generic/556 over ext4. We really need the check in both places, though. We don't want to rely on the behavior of generic_ci_d_hash to block invalid filenames, as that might change. --=20 Gabriel Krisman Bertazi