]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
stdlib: Adapt tst-environ to ubsan
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 23 Apr 2025 14:44:24 +0000 (11:44 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 8 May 2025 12:25:35 +0000 (09:25 -0300)
The test explicits checks for passing a null argument to a
function with argument nonnull attribute.

stdlib/tst-environ.c

index d790f9bddf8d1fece9bd5d5a9b51b700042e2b61..b9937b8b14ce379c57341dfbefb73c2dfe9ff008 100644 (file)
 
 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)