From: Jan Hendrik Farr <kernel@jfarr.cc>
To: Alan Huang <mmpgouride@gmail.com>
Cc: kent.overstreet@linux.dev, kees@kernel.org,
gustavoars@kernel.org, thorsten.blum@toblux.com,
linux-bcachefs@vger.kernel.org, linux-hardening@vger.kernel.org
Subject: Re: [PATCH 2/2] bcachefs: Rename x_name to x_name_and_value
Date: Fri, 2 May 2025 03:56:35 +0200 [thread overview]
Message-ID: <aBQmU9xS0exdHoDk@archlinux> (raw)
In-Reply-To: <20250501200132.216859-2-mmpgouride@gmail.com>
On 02 04:01:32, Alan Huang wrote:
> The flexible array contains name and value, the x_name is misleading.
>
> Signed-off-by: Alan Huang <mmpgouride@gmail.com>
Reviewed-by: Jan Hendrik Farr <kernel@jfarr.cc>
> ---
> fs/bcachefs/xattr.c | 16 ++++++++--------
> fs/bcachefs/xattr.h | 4 ++--
> fs/bcachefs/xattr_format.h | 4 ++--
> 3 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/fs/bcachefs/xattr.c b/fs/bcachefs/xattr.c
> index 3d324e485ee9..b8bc2fb04f15 100644
> --- a/fs/bcachefs/xattr.c
> +++ b/fs/bcachefs/xattr.c
> @@ -38,7 +38,7 @@ static u64 xattr_hash_bkey(const struct bch_hash_info *info, struct bkey_s_c k)
> struct bkey_s_c_xattr x = bkey_s_c_to_xattr(k);
>
> return bch2_xattr_hash(info,
> - &X_SEARCH(x.v->x_type, x.v->x_name, x.v->x_name_len));
> + &X_SEARCH(x.v->x_type, x.v->x_name_and_value, x.v->x_name_len));
> }
>
> static bool xattr_cmp_key(struct bkey_s_c _l, const void *_r)
> @@ -48,7 +48,7 @@ static bool xattr_cmp_key(struct bkey_s_c _l, const void *_r)
>
> return l.v->x_type != r->type ||
> l.v->x_name_len != r->name.len ||
> - memcmp(l.v->x_name, r->name.name, r->name.len);
> + memcmp(l.v->x_name_and_value, r->name.name, r->name.len);
> }
>
> static bool xattr_cmp_bkey(struct bkey_s_c _l, struct bkey_s_c _r)
> @@ -58,7 +58,7 @@ static bool xattr_cmp_bkey(struct bkey_s_c _l, struct bkey_s_c _r)
>
> return l.v->x_type != r.v->x_type ||
> l.v->x_name_len != r.v->x_name_len ||
> - memcmp(l.v->x_name, r.v->x_name, r.v->x_name_len);
> + memcmp(l.v->x_name_and_value, r.v->x_name_and_value, r.v->x_name_len);
> }
>
> const struct bch_hash_desc bch2_xattr_hash_desc = {
> @@ -96,7 +96,7 @@ int bch2_xattr_validate(struct bch_fs *c, struct bkey_s_c k,
> c, xattr_invalid_type,
> "invalid type (%u)", xattr.v->x_type);
>
> - bkey_fsck_err_on(memchr(xattr.v->x_name, '\0', xattr.v->x_name_len),
> + bkey_fsck_err_on(memchr(xattr.v->x_name_and_value, '\0', xattr.v->x_name_len),
> c, xattr_name_invalid_chars,
> "xattr name has invalid characters");
> fsck_err:
> @@ -120,13 +120,13 @@ void bch2_xattr_to_text(struct printbuf *out, struct bch_fs *c,
> unsigned name_len = xattr.v->x_name_len;
> unsigned val_len = le16_to_cpu(xattr.v->x_val_len);
> unsigned max_name_val_bytes = bkey_val_bytes(xattr.k) -
> - offsetof(struct bch_xattr, x_name);
> + offsetof(struct bch_xattr, x_name_and_value);
>
> val_len = min_t(int, val_len, max_name_val_bytes - name_len);
> name_len = min(name_len, max_name_val_bytes);
>
> prt_printf(out, "%.*s:%.*s",
> - name_len, xattr.v->x_name,
> + name_len, xattr.v->x_name_and_value,
> val_len, (char *) xattr_val(xattr.v));
>
> if (xattr.v->x_type == KEY_TYPE_XATTR_INDEX_POSIX_ACL_ACCESS ||
> @@ -202,7 +202,7 @@ int bch2_xattr_set(struct btree_trans *trans, subvol_inum inum,
> xattr->v.x_type = type;
> xattr->v.x_name_len = namelen;
> xattr->v.x_val_len = cpu_to_le16(size);
> - memcpy(xattr->v.x_name, name, namelen);
> + memcpy(xattr->v.x_name_and_value, name, namelen);
> memcpy(xattr_val(&xattr->v), value, size);
>
> ret = bch2_hash_set(trans, bch2_xattr_hash_desc, hash_info,
> @@ -270,7 +270,7 @@ static int bch2_xattr_emit(struct dentry *dentry,
> if (!prefix)
> return 0;
>
> - return __bch2_xattr_emit(prefix, xattr->x_name, xattr->x_name_len, buf);
> + return __bch2_xattr_emit(prefix, xattr->x_name_and_value, xattr->x_name_len, buf);
> }
>
> static int bch2_xattr_list_bcachefs(struct bch_fs *c,
> diff --git a/fs/bcachefs/xattr.h b/fs/bcachefs/xattr.h
> index 132fbbd15a66..1139bf345f70 100644
> --- a/fs/bcachefs/xattr.h
> +++ b/fs/bcachefs/xattr.h
> @@ -18,12 +18,12 @@ void bch2_xattr_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
>
> static inline unsigned xattr_val_u64s(unsigned name_len, unsigned val_len)
> {
> - return DIV_ROUND_UP(offsetof(struct bch_xattr, x_name) +
> + return DIV_ROUND_UP(offsetof(struct bch_xattr, x_name_and_value) +
> name_len + val_len, sizeof(u64));
> }
>
> #define xattr_val(_xattr) \
> - ((void *) (_xattr)->x_name + (_xattr)->x_name_len)
> + ((void *) (_xattr)->x_name_and_value + (_xattr)->x_name_len)
>
> struct xattr_search_key {
> u8 type;
> diff --git a/fs/bcachefs/xattr_format.h b/fs/bcachefs/xattr_format.h
> index 67426e33d04e..4121b78d9a92 100644
> --- a/fs/bcachefs/xattr_format.h
> +++ b/fs/bcachefs/xattr_format.h
> @@ -16,10 +16,10 @@ struct bch_xattr {
> /*
> * x_name contains the name and value counted by
> * x_name_len + x_val_len. The introduction of
> - * __counted_by(x_name_len) caused a false positive
> + * __counted_by(x_name_len) previously caused a false positive
> * detection of an out of bounds write.
> */
> - __u8 x_name[];
> + __u8 x_name_and_value[];
> } __packed __aligned(8);
>
> #endif /* _BCACHEFS_XATTR_FORMAT_H */
> --
> 2.48.1
>
next prev parent reply other threads:[~2025-05-02 1:56 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-01 20:01 [PATCH 1/2] bcachefs: Remove incorrect __counted_by annotation Alan Huang
2025-05-01 20:01 ` [PATCH 2/2] bcachefs: Rename x_name to x_name_and_value Alan Huang
2025-05-02 1:56 ` Jan Hendrik Farr [this message]
2025-05-01 20:08 ` [PATCH 1/2] bcachefs: Remove incorrect __counted_by annotation Thorsten Blum
2025-05-01 20:11 ` Thorsten Blum
2025-05-01 20:13 ` Kees Cook
2025-05-02 1:55 ` Jan Hendrik Farr
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aBQmU9xS0exdHoDk@archlinux \
--to=kernel@jfarr.cc \
--cc=gustavoars@kernel.org \
--cc=kees@kernel.org \
--cc=kent.overstreet@linux.dev \
--cc=linux-bcachefs@vger.kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=mmpgouride@gmail.com \
--cc=thorsten.blum@toblux.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox