From: Christian Schoenebeck <linux_oss@crudebyte.com>
To: v9fs@lists.linux.dev, ericvh@kernel.org,
Dominique Martinet <asmadeus@codewreck.org>
Cc: lucho@ionkov.net, linux-kernel@vger.kernel.org,
Dominique Martinet <asmadeus@codewreck.org>,
Su Hui <suhui@nfschina.com>,
Dan Carpenter <dan.carpenter@linaro.org>
Subject: Re: [PATCH 2/3] 9p: v9fs_listxattr: fix %s null argument warning
Date: Tue, 24 Oct 2023 14:29:54 +0200 [thread overview]
Message-ID: <2430862.CWyeMz6ufJ@silver> (raw)
In-Reply-To: <20231023233704.1185154-3-asmadeus@codewreck.org>
On Tuesday, October 24, 2023 1:37:03 AM CEST Dominique Martinet wrote:
> W=1 warns about null argument to kprintf:
> In file included from fs/9p/xattr.c:12:
> In function ‘v9fs_xattr_get’,
> inlined from ‘v9fs_listxattr’ at fs/9p/xattr.c:142:9:
> include/net/9p/9p.h:55:2: error: ‘%s’ directive argument is null
> [-Werror=format-overflow=]
> 55 | _p9_debug(level, __func__, fmt, ##__VA_ARGS__)
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Use an empty string instead of :
> - this is ok 9p-wise because p9pdu_vwritef serializes a null string
> and an empty string the same way (one '0' word for length)
> - since this degrades the print statements, add new single quotes for
> xattr's name delimter (Old: "file = (null)", new: "file = ''")
>
> Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
> Link: https://lore.kernel.org/r/20231008060138.517057-1-suhui@nfschina.com
> Suggested-by: Su Hui <suhui@nfschina.com>
> Cc: Dan Carpenter <dan.carpenter@linaro.org>
> ---
> I've checked this works as expected (getfattr listing all user.* xattrs
> after setting some), so let's fix this warning.
>
> As pointed out by Dan this makes the message les clear, so I added
> single quotes to make it clear we're dealing with an empty string; I
> think it's good enough.
> Su, I made you only Suggested-by because of the extra legwork and
> format changes, but happy to give you authorship if it's something you
> care about; I'd just like to get it out during the next merge window
> in a couple of weeks so please say the word.
>
> This makes fs/9p build warning-free with W=1 on gcc 12
>
> fs/9p/xattr.c | 4 ++--
> net/9p/client.c | 2 +-
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/fs/9p/xattr.c b/fs/9p/xattr.c
> index e00cf8109b3f..d29907c378fd 100644
> --- a/fs/9p/xattr.c
> +++ b/fs/9p/xattr.c
> @@ -68,7 +68,7 @@ ssize_t v9fs_xattr_get(struct dentry *dentry, const char *name,
> struct p9_fid *fid;
> int ret;
>
> - p9_debug(P9_DEBUG_VFS, "name = %s value_len = %zu\n",
> + p9_debug(P9_DEBUG_VFS, "name = '%s' value_len = %zu\n",
> name, buffer_size);
> fid = v9fs_fid_lookup(dentry);
> if (IS_ERR(fid))
> @@ -139,7 +139,7 @@ int v9fs_fid_xattr_set(struct p9_fid *fid, const char *name,
>
> ssize_t v9fs_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size)
> {
> - return v9fs_xattr_get(dentry, NULL, buffer, buffer_size);
> + return v9fs_xattr_get(dentry, "", buffer, buffer_size);
> }
As from the previous discussions on this, it might be worth to add a short
comment here that the magical empty string in the subsequent 'Txattrwalk' 9p
request causes 9p server to return a list of xattrs instead of one specific
xattr.
Up to you though:
Acked-by: Christian Schoenebeck <linux_oss@crudebyte.com>
>
> static int v9fs_xattr_handler_get(const struct xattr_handler *handler,
> diff --git a/net/9p/client.c b/net/9p/client.c
> index 86bbc7147fc1..9c2bc15e3cfa 100644
> --- a/net/9p/client.c
> +++ b/net/9p/client.c
> @@ -1979,7 +1979,7 @@ struct p9_fid *p9_client_xattrwalk(struct p9_fid *file_fid,
> goto error;
> }
> p9_debug(P9_DEBUG_9P,
> - ">>> TXATTRWALK file_fid %d, attr_fid %d name %s\n",
> + ">>> TXATTRWALK file_fid %d, attr_fid %d name '%s'\n",
> file_fid->fid, attr_fid->fid, attr_name);
>
> req = p9_client_rpc(clnt, P9_TXATTRWALK, "dds",
>
next prev parent reply other threads:[~2023-10-24 12:30 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-23 23:37 [PATCH 0/3] Small patches for 6.7 Dominique Martinet
2023-10-23 23:37 ` [PATCH 1/3] 9p: Annotate data-racy writes to file::f_flags on fd mount Dominique Martinet
2023-10-24 7:12 ` Marco Elver
2023-10-24 7:44 ` Dominique Martinet
2023-10-24 7:49 ` Marco Elver
2023-10-24 11:58 ` [PATCH v2] 9p/trans_fd: Annotate data-racy writes to file::f_flags Dominique Martinet
2023-10-23 23:37 ` [PATCH 2/3] 9p: v9fs_listxattr: fix %s null argument warning Dominique Martinet
2023-10-24 5:16 ` Dan Carpenter
2023-10-24 12:29 ` Christian Schoenebeck [this message]
2023-10-23 23:37 ` [PATCH 3/3] 9p/net: xen: fix false positive printf format overflow warning Dominique Martinet
2023-10-24 12:52 ` Christian Schoenebeck
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=2430862.CWyeMz6ufJ@silver \
--to=linux_oss@crudebyte.com \
--cc=asmadeus@codewreck.org \
--cc=dan.carpenter@linaro.org \
--cc=ericvh@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lucho@ionkov.net \
--cc=suhui@nfschina.com \
--cc=v9fs@lists.linux.dev \
/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.