From: Adhemerval Zanella Date: Wed, 23 Apr 2025 14:44:24 +0000 (-0300) Subject: stdlib: Adapt tst-environ to ubsan X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ba3e3ae80b5172ccc45556f96ad3c628200e20d1;p=thirdparty%2Fglibc.git stdlib: Adapt tst-environ to ubsan The test explicits checks for passing a null argument to a function with argument nonnull attribute. --- diff --git a/stdlib/tst-environ.c b/stdlib/tst-environ.c index d790f9bddf..b9937b8b14 100644 --- a/stdlib/tst-environ.c +++ b/stdlib/tst-environ.c @@ -26,6 +26,24 @@ char putenv_val[100] = VAR "=some longer value"; +static int +__attribute_disable_ubsan__ +check_null_argument (void) +{ + /* This deliberately tests supplying a null pointer to a function whose + argument is marked __attribute__ ((nonnull)). */ + DIAG_PUSH_NEEDS_COMMENT; + DIAG_IGNORE_NEEDS_COMMENT(5, "-Wnonnull"); + errno = 0; + if (unsetenv (NULL) >= 0 || errno != EINVAL) + { + puts ("unsetenv #1 failed"); + return 1; + } + DIAG_POP_NEEDS_COMMENT; + return 0; +} + static int do_test (void) { @@ -189,17 +207,7 @@ do_test (void) result = 1; } - /* This deliberately tests supplying a null pointer to a function whose - argument is marked __attribute__ ((nonnull)). */ - DIAG_PUSH_NEEDS_COMMENT; - DIAG_IGNORE_NEEDS_COMMENT(5, "-Wnonnull"); - errno = 0; - if (unsetenv (NULL) >= 0 || errno != EINVAL) - { - puts ("unsetenv #1 failed"); - result = 1; - } - DIAG_POP_NEEDS_COMMENT; + result = check_null_argument (); errno = 0; if (unsetenv ("") >= 0 || errno != EINVAL)