mbox series

[0/6] tools/nolibc: fix some undefined behaviour and enable UBSAN

Message ID 20250416-nolibc-ubsan-v1-0-c4704bb23da7@weissschuh.net (mailing list archive)
Headers show
Series tools/nolibc: fix some undefined behaviour and enable UBSAN | expand

Message

Thomas Weißschuh April 16, 2025, 6:40 p.m. UTC
Fix some issues uncovered by UBSAN and enable UBSAN for nolibc-test to
avoid regressions.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
Thomas Weißschuh (6):
      tools/nolibc: add __nolibc_has_feature()
      tools/nolibc: disable function sanitizer for _start_c()
      tools/nolibc: properly align dirent buffer
      tools/nolibc: fix integer overflow in i{64,}toa_r() and
      selftests/nolibc: disable ubsan for smash_stack()
      selftests/nolibc: enable UBSAN if available

 tools/include/nolibc/compiler.h              |  6 ++++++
 tools/include/nolibc/crt.h                   |  5 +++++
 tools/include/nolibc/dirent.h                |  1 +
 tools/include/nolibc/stdlib.h                | 24 ++++++++----------------
 tools/testing/selftests/nolibc/Makefile      |  3 ++-
 tools/testing/selftests/nolibc/nolibc-test.c |  1 +
 6 files changed, 23 insertions(+), 17 deletions(-)
---
base-commit: 7c73c10b906778384843b9d3ac6c2224727bbf5c
change-id: 20250416-nolibc-ubsan-028401698654

Best regards,

Comments

Paul E. McKenney April 18, 2025, 5:32 p.m. UTC | #1
On Wed, Apr 16, 2025 at 08:40:15PM +0200, Thomas Weißschuh wrote:
> Fix some issues uncovered by UBSAN and enable UBSAN for nolibc-test to
> avoid regressions.
> 
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>

Thank you, Thomas!  Are these intended to go into the current v6.15
release, or are you instead thinking in terms of the v6.16 merge window?
Either works for me, but left to myself, I would assume the v6.16
merge window.  ;-)

							Thanx, Paul

> ---
> Thomas Weißschuh (6):
>       tools/nolibc: add __nolibc_has_feature()
>       tools/nolibc: disable function sanitizer for _start_c()
>       tools/nolibc: properly align dirent buffer
>       tools/nolibc: fix integer overflow in i{64,}toa_r() and
>       selftests/nolibc: disable ubsan for smash_stack()
>       selftests/nolibc: enable UBSAN if available
> 
>  tools/include/nolibc/compiler.h              |  6 ++++++
>  tools/include/nolibc/crt.h                   |  5 +++++
>  tools/include/nolibc/dirent.h                |  1 +
>  tools/include/nolibc/stdlib.h                | 24 ++++++++----------------
>  tools/testing/selftests/nolibc/Makefile      |  3 ++-
>  tools/testing/selftests/nolibc/nolibc-test.c |  1 +
>  6 files changed, 23 insertions(+), 17 deletions(-)
> ---
> base-commit: 7c73c10b906778384843b9d3ac6c2224727bbf5c
> change-id: 20250416-nolibc-ubsan-028401698654
> 
> Best regards,
> -- 
> Thomas Weißschuh <linux@weissschuh.net>
>
Thomas Weißschuh April 18, 2025, 9:20 p.m. UTC | #2
Hi Paul,

On 2025-04-18 10:32:27-0700, Paul E. McKenney wrote:
> On Wed, Apr 16, 2025 at 08:40:15PM +0200, Thomas Weißschuh wrote:
> > Fix some issues uncovered by UBSAN and enable UBSAN for nolibc-test to
> > avoid regressions.
> > 
> > Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> 
> Thank you, Thomas!  Are these intended to go into the current v6.15
> release, or are you instead thinking in terms of the v6.16 merge window?
> Either works for me, but left to myself, I would assume the v6.16
> merge window.  ;-)

They are intended for v6.16 through the normal process.


Thomas

> 
> > ---
> > Thomas Weißschuh (6):
> >       tools/nolibc: add __nolibc_has_feature()
> >       tools/nolibc: disable function sanitizer for _start_c()
> >       tools/nolibc: properly align dirent buffer
> >       tools/nolibc: fix integer overflow in i{64,}toa_r() and
> >       selftests/nolibc: disable ubsan for smash_stack()
> >       selftests/nolibc: enable UBSAN if available
> > 
> >  tools/include/nolibc/compiler.h              |  6 ++++++
> >  tools/include/nolibc/crt.h                   |  5 +++++
> >  tools/include/nolibc/dirent.h                |  1 +
> >  tools/include/nolibc/stdlib.h                | 24 ++++++++----------------
> >  tools/testing/selftests/nolibc/Makefile      |  3 ++-
> >  tools/testing/selftests/nolibc/nolibc-test.c |  1 +
> >  6 files changed, 23 insertions(+), 17 deletions(-)
> > ---
> > base-commit: 7c73c10b906778384843b9d3ac6c2224727bbf5c
> > change-id: 20250416-nolibc-ubsan-028401698654
> > 
> > Best regards,
> > -- 
> > Thomas Weißschuh <linux@weissschuh.net>
> >
Paul E. McKenney April 18, 2025, 9:29 p.m. UTC | #3
On Fri, Apr 18, 2025 at 11:20:29PM +0200, Thomas Weißschuh wrote:
> Hi Paul,
> 
> On 2025-04-18 10:32:27-0700, Paul E. McKenney wrote:
> > On Wed, Apr 16, 2025 at 08:40:15PM +0200, Thomas Weißschuh wrote:
> > > Fix some issues uncovered by UBSAN and enable UBSAN for nolibc-test to
> > > avoid regressions.
> > > 
> > > Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> > 
> > Thank you, Thomas!  Are these intended to go into the current v6.15
> > release, or are you instead thinking in terms of the v6.16 merge window?
> > Either works for me, but left to myself, I would assume the v6.16
> > merge window.  ;-)
> 
> They are intended for v6.16 through the normal process.

Sounds good, and thank you for the clarification.  Plus good show on
getting them out early.  ;-)

							Thanx, Paul

> Thomas
> 
> > 
> > > ---
> > > Thomas Weißschuh (6):
> > >       tools/nolibc: add __nolibc_has_feature()
> > >       tools/nolibc: disable function sanitizer for _start_c()
> > >       tools/nolibc: properly align dirent buffer
> > >       tools/nolibc: fix integer overflow in i{64,}toa_r() and
> > >       selftests/nolibc: disable ubsan for smash_stack()
> > >       selftests/nolibc: enable UBSAN if available
> > > 
> > >  tools/include/nolibc/compiler.h              |  6 ++++++
> > >  tools/include/nolibc/crt.h                   |  5 +++++
> > >  tools/include/nolibc/dirent.h                |  1 +
> > >  tools/include/nolibc/stdlib.h                | 24 ++++++++----------------
> > >  tools/testing/selftests/nolibc/Makefile      |  3 ++-
> > >  tools/testing/selftests/nolibc/nolibc-test.c |  1 +
> > >  6 files changed, 23 insertions(+), 17 deletions(-)
> > > ---
> > > base-commit: 7c73c10b906778384843b9d3ac6c2224727bbf5c
> > > change-id: 20250416-nolibc-ubsan-028401698654
> > > 
> > > Best regards,
> > > -- 
> > > Thomas Weißschuh <linux@weissschuh.net>
> > >