From: Simon Horman <horms@kernel.org>
To: Andrew Lunn <andrew@lunn.ch>
Cc: "David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Sunil Goutham <sgoutham@marvell.com>,
Geethasowjanya Akula <gakula@marvell.com>,
Subbaraya Sundeep <sbhatta@marvell.com>,
Hariprasad Kelam <hkelam@marvell.com>,
Dan Carpenter <dan.carpenter@linaro.org>,
netdev@vger.kernel.org
Subject: Re: [PATCH net-next] octeontx2-pf: Treat truncation of IRQ name as an error
Date: Wed, 1 May 2024 21:33:11 +0100 [thread overview]
Message-ID: <20240501203311.GA2821784@kernel.org> (raw)
In-Reply-To: <aa0246ef-5696-42ea-9f00-4815d268abb7@lunn.ch>
On Wed, May 01, 2024 at 10:21:30PM +0200, Andrew Lunn wrote:
> On Wed, May 01, 2024 at 09:11:46PM +0100, Simon Horman wrote:
> > On Wed, May 01, 2024 at 09:46:15PM +0200, Andrew Lunn wrote:
> > > On Wed, May 01, 2024 at 07:27:09PM +0100, Simon Horman wrote:
> > > > According to GCC, the constriction of irq_name in otx2_open()
> > > > may, theoretically, be truncated.
> > > >
> > > > This patch takes the approach of treating such a situation as an error
> > > > which it detects by making use of the return value of snprintf, which is
> > > > the total number of bytes, including the trailing '\0', that would have
> > > > been written.
> > > > + name_len = snprintf(irq_name, NAME_SIZE, "%s-rxtx-%d",
> > > > + pf->netdev->name, qidx);
> > > > + if (name_len >= NAME_SIZE) {
> > >
> > > You say name_len includes the trailing \0. So you should be able to
> > > get NAME_SIZE bytes into an NAME_SIZE length array? So i think this
> > > can be >, not >= ?
> >
> > Sorry, I misspoke.
> > name_len excludes the trailing \0.
>
> The man page say:
>
> Upon successful return, these functions return the number of characters
> printed (excluding the null byte used to end output to strings).
>
> The functions snprintf() and vsnprintf() do not write more than size
> bytes (including the terminating null byte ('\0')). If the output was
> truncated due to this limit, then the return value is the number of
> characters (excluding the terminating null byte) which would have been
> written to the final string if enough space had been available. Thus,
> a return value of size or more means that the output was truncated.
> (See also below under NOTES.)
>
> Assuming the kernel snprintf() follows this, your condition is
> correct. So once the commit message is corrected, please add:
>
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Thanks Andrew,
According to the documentation, the Kernel implementation
it matches the return value scheme described above.
For the record, the text in lib/vsprintf.c says:
* The return value is the number of characters which would be
* generated for the given input, excluding the trailing null,
* as per ISO C99. If the return is greater than or equal to
* @size, the resulting string is truncated.
So I think the code is correct but my patch description text was wrong.
As you suggest, I'll fix that in v2.
next prev parent reply other threads:[~2024-05-01 20:33 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-01 18:27 [PATCH net-next] octeontx2-pf: Treat truncation of IRQ name as an error Simon Horman
2024-05-01 19:46 ` Andrew Lunn
2024-05-01 20:11 ` Simon Horman
2024-05-01 20:21 ` Andrew Lunn
2024-05-01 20:33 ` Simon Horman [this message]
2024-05-03 6:20 ` [EXTERNAL] " Geethasowjanya Akula
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=20240501203311.GA2821784@kernel.org \
--to=horms@kernel.org \
--cc=andrew@lunn.ch \
--cc=dan.carpenter@linaro.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gakula@marvell.com \
--cc=hkelam@marvell.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sbhatta@marvell.com \
--cc=sgoutham@marvell.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;
as well as URLs for NNTP newsgroup(s).