Re: [PATCH v3 2/2] btrfs: harden parsing of compress mount options
From: David Sterba <hidden>
Date: 2025-06-12 15:19:03
Also in:
lkml
On Thu, Jun 12, 2025 at 03:29:21PM +0200, Daniel Vacek wrote:
On Mon, 2 Jun 2025 at 19:29, David Sterba [off-list ref] wrote:quoted
On Mon, Jun 02, 2025 at 05:53:19PM +0200, Daniel Vacek wrote:quoted
Btrfs happily but incorrectly accepts the `-o compress=zlib+foo` and similar options with any random suffix. Fix that by explicitly checking the end of the strings. Signed-off-by: Daniel Vacek <redacted> --- v3 changes: Split into two patches to ease backporting, no functional changes. fs/btrfs/super.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-)diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 6291ab45ab2a5..4510c5f7a785e 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c@@ -270,9 +270,20 @@ static inline blk_mode_t btrfs_open_mode(struct fs_context *fc) return sb_open_mode(fc->sb_flags) & ~BLK_OPEN_RESTRICT_WRITES; } +static bool btrfs_match_compress_type(char *string, char *type, bool may_have_level)const also here, string, typequoted
+{ + int len = strlen(type); + + return strncmp(string, type, len) == 0 && + ((may_have_level && string[len] == ':') || + string[len] == '\0'); +} + static int btrfs_parse_compress(struct btrfs_fs_context *ctx, struct fs_parameter *param, int opt) { + char *string = param->string;and hereCan be done at merge time. Or do you want a re-send?
No resend needed, I updated the patch in for-next. This was to let you know so that I don't need to fix it in future patches.