lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ