All of lore.kernel.org
 help / color / mirror / Atom feed
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
> 

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.