LGTM but dunfell is EOL,

On Mon, Feb 3, 2025 at 7:41 AM nikhil via lists.openembedded.org
<nikhilar2410=gmail....@lists.openembedded.org> wrote:
>
> From: Nikhil R <nikhi...@kpit.com>
>
> When building with GCC -Os, a warning is triggered indicating that sprintf 
> might overflow.
>
> Error:
>   netname.c: In function 'user2netname':
>   netname.c:51:28: error: '%s' directive writing up to 255 bytes into a
>   region of size between 239 and 249 [-Werror=format-overflow=]
>      51 |   sprintf (netname, "%s.%d@%s", OPSYS, uid, dfltdom);
>         |                            ^~               ~~~~~~~
>   netname.c:51:3: note: 'sprintf' output between 8 and 273 bytes into a
>   destination of size 256
>      51 |   sprintf (netname, "%s.%d@%s", OPSYS, uid, dfltdom);
>         |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   cc1: all warnings being treated as errors
>
> However the code does test prior the sprintf call that dfltdom plus
> the required extra space for OPSYS, uid, and extra character will not
> overflow and return 0 instead.
>
> Upstream-patch: 
> https://github.com/bminor/glibc/commit/6128e82ebe973163d2dd614d31753c88c0c4d645
>
> Reviewed-by: Carlos O'Donell <car...@redhat.com>
> Tested-by: Carlos O'Donell <car...@redhat.com>
> Signed-off-by: Nikhil R <nikhi...@kpit.com>
> ---
>  ...press-gcc-os-warning-on-user2netname.patch | 61 +++++++++++++++++++
>  meta/recipes-core/glibc/glibc_2.35.bb         |  1 +
>  2 files changed, 62 insertions(+)
>  create mode 100644 
> meta/recipes-core/glibc/glibc/0003-sunrpc-suppress-gcc-os-warning-on-user2netname.patch
>
> diff --git 
> a/meta/recipes-core/glibc/glibc/0003-sunrpc-suppress-gcc-os-warning-on-user2netname.patch
>  
> b/meta/recipes-core/glibc/glibc/0003-sunrpc-suppress-gcc-os-warning-on-user2netname.patch
> new file mode 100644
> index 00000000000..7068a81518f
> --- /dev/null
> +++ 
> b/meta/recipes-core/glibc/glibc/0003-sunrpc-suppress-gcc-os-warning-on-user2netname.patch
> @@ -0,0 +1,61 @@
> +From 6128e82ebe973163d2dd614d31753c88c0c4d645 Mon Sep 17 00:00:00 2001
> +From: Adhemerval Zanella Netto <adhemerval.zane...@linaro.org>
> +Date: Wed, 21 Sep 2022 10:51:07 -0300
> +Subject: [PATCH] sunrpc: Suppress GCC -Os warning on user2netname
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +GCC with -Os warns that sprint might overflow:
> +
> +  netname.c: In function ‘user2netname’:
> +  netname.c:51:28: error: ‘%s’ directive writing up to 255 bytes into a
> +  region of size between 239 and 249 [-Werror=format-overflow=]
> +     51 |   sprintf (netname, "%s.%d@%s", OPSYS, uid, dfltdom);
> +        |                            ^~               ~~~~~~~
> +  netname.c:51:3: note: ‘sprintf’ output between 8 and 273 bytes into a
> +  destination of size 256
> +     51 |   sprintf (netname, "%s.%d@%s", OPSYS, uid, dfltdom);
> +        |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +  cc1: all warnings being treated as errors
> +
> +However the code does test prior the sprintf call that dfltdom plus
> +the required extra space for OPSYS, uid, and extra character will not
> +overflow and return 0 instead.
> +
> +Checked on x86_64-linux-gnu and i686-linux-gnu.
> +Reviewed-by: Carlos O'Donell <car...@redhat.com>
> +Tested-by: Carlos O'Donell <car...@redhat.com>
> +
> +Upstream-Status: Backport 
> [https://github.com/bminor/glibc/commit/6128e82ebe973163d2dd614d31753c88c0c4d645]
> +Signed-off-by: nikhil <nikhi...@kpit.com>
> +
> +---
> + sunrpc/netname.c | 6 ++++++
> + 1 file changed, 6 insertions(+)
> +
> +diff --git a/sunrpc/netname.c b/sunrpc/netname.c
> +index bf7f0b81c43..c1d1c43e502 100644
> +--- a/sunrpc/netname.c
> ++++ b/sunrpc/netname.c
> +@@ -20,6 +20,7 @@
> + #include <string.h>
> + #include <rpc/rpc.h>
> + #include <shlib-compat.h>
> ++#include <libc-diag.h>
> +
> + #include "nsswitch.h"
> +
> +@@ -48,7 +49,12 @@ user2netname (char netname[MAXNETNAMELEN + 1], const 
> uid_t uid,
> +   if ((strlen (dfltdom) + OPSYS_LEN + 3 + MAXIPRINT) > (size_t) 
> MAXNETNAMELEN)
> +     return 0;
> +
> ++  /* GCC with -Os warns that sprint might overflow while handling dfltdom,
> ++     however the above test does check if an overflow would happen.  */
> ++  DIAG_PUSH_NEEDS_COMMENT;
> ++  DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wformat-overflow");
> +   sprintf (netname, "%s.%d@%s", OPSYS, uid, dfltdom);
> ++  DIAG_POP_NEEDS_COMMENT;
> +   i = strlen (netname);
> +   if (netname[i - 1] == '.')
> +     netname[i - 1] = '\0';
> diff --git a/meta/recipes-core/glibc/glibc_2.35.bb 
> b/meta/recipes-core/glibc/glibc_2.35.bb
> index 9400e1e9208..d9cae79ac2f 100644
> --- a/meta/recipes-core/glibc/glibc_2.35.bb
> +++ b/meta/recipes-core/glibc/glibc_2.35.bb
> @@ -64,6 +64,7 @@ SRC_URI =  "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc 
> \
>             \
>             
> file://0001-Revert-Linux-Implement-a-useful-version-of-_startup_.patch \
>             file://0002-get_nscd_addresses-Fix-subscript-typos-BZ-29605.patch 
> \
> +           file://0003-sunrpc-suppress-gcc-os-warning-on-user2netname.patch \
>             "
>  S = "${WORKDIR}/git"
>  B = "${WORKDIR}/build-${TARGET_SYS}"
> --
> 2.17.1
>
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#210732): 
https://lists.openembedded.org/g/openembedded-core/message/210732
Mute This Topic: https://lists.openembedded.org/mt/110972964/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to