]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
linux: Also check pkey_get for ENOSYS on tst-pkey (BZ 31996)
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 19 Jul 2024 14:23:15 +0000 (11:23 -0300)
committerAndreas K. Hüttel <dilfridge@gentoo.org>
Fri, 19 Jul 2024 20:39:44 +0000 (22:39 +0200)
The powerpc pkey_get/pkey_set support was only added for 64-bit [1],
and tst-pkey only checks if the support was present with pkey_alloc
(which does not fail on powerpc32, at least running a 64-bit kernel).

Checked on powerpc-linux-gnu.

[1] https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a803367bab167f5ec4fde1f0d0ec447707c29520
Reviewed-By: Andreas K. Huettel <dilfridge@gentoo.org>
sysdeps/unix/sysv/linux/tst-pkey.c

index d9083daab9874a967946e21559e3dbf3af295a31..46f55666dad2733b7f33c888a6eebfea60d64b19 100644 (file)
@@ -205,7 +205,13 @@ do_test (void)
            " protection keys");
       FAIL_EXIT1 ("pkey_alloc: %m");
     }
-  TEST_COMPARE (pkey_get (keys[0]), 0);
+  if (pkey_get (keys[0]) < 0)
+    {
+      if (errno == ENOSYS)
+       FAIL_UNSUPPORTED
+         ("glibc does not support memory protection keys");
+      FAIL_EXIT1 ("pkey_alloc: %m");
+    }
   for (int i = 1; i < key_count; ++i)
     {
       keys[i] = pkey_alloc (0, i);