[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAK7LNAQ86H7xpMqTwezXgbk8Bn273gpe9G1rmp-P0Qyzf7AJ2g@mail.gmail.com>
Date: Thu, 28 Nov 2024 08:30:29 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: Advait Dhamorikar <advaitdhamorikar@...il.com>
Cc: Nicolas Schier <nicolas@...sle.eu>, Nathan Chancellor <nathan@...nel.org>, linux-kbuild@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH-next] modpost: Remove logically dead condition
On Thu, Nov 28, 2024 at 6:31 AM Advait Dhamorikar
<advaitdhamorikar@...il.com> wrote:
>
> Hello Nicolas,
>
> > vsnprintf prototypes also indicate 'int' as return type. What is the source of your mentioned findings?
> Sorry, I read an alternate vsnprintf implementation and have worded my
> patch log wrong based on it.
>
> However there is still an issue that n is declared as size_t which is
> a typedef for
> an unsigned long, I think the correct solution then is to use a signed
> data type here for n?
Yes.
'n' should be int.
This matches the return type of vsnprintf().
I will squash the following.
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index 81f20ef13a0d..5b5745f00eb3 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -49,7 +49,8 @@ module_alias_printf(struct module *mod, bool append_wildcard,
const char *fmt, ...)
{
struct module_alias *new, *als;
- size_t len, n;
+ size_t len;
+ int n;
va_list ap;
/* Determine required size. */
Thank you for your report!
>
> Thanks for your time and feedback.
>
> Best regards,
> Advait
>
> On Thu, 28 Nov 2024 at 02:21, Nicolas Schier <nicolas@...sle.eu> wrote:
> >
> > On Wed, Nov 27, 2024 at 09:59:04PM +0530 Advait Dhamorikar wrote:
> > > In case of failure vsnprintf returns `pos`, an unsigned long integer.
> > > An unsigned value can never be negative, so this test will always evaluate
> > > the same way.
> >
> > 'man vsnprintf' on my system reveals a different behaviour:
> >
> > | The functions snprintf() and vsnprintf() do not
> > | write more than size bytes (including the termi‐
> > | nating 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.)
> > |
> > | If an output error is encountered, a negative
> > | value is returned.
> >
> > vsnprintf prototypes also indicate 'int' as return type. What is the source of your mentioned findings?
> >
> > Kind regards,
> > Nicolas
> >
--
Best Regards
Masahiro Yamada
Powered by blists - more mailing lists