[PATCH v4] Fix tst-pkey expectations on pkey_get [BZ #23202]
Florian Weimer
fweimer@redhat.com
Mon Feb 17 12:51:00 GMT 2020
* Lucas A. M. Magalhaes:
> diff --git a/sysdeps/unix/sysv/linux/tst-pkey.c b/sysdeps/unix/sysv/linux/tst-pkey.c
> index 4ea1bc4f9a..cba40c73de 100644
> --- a/sysdeps/unix/sysv/linux/tst-pkey.c
> +++ b/sysdeps/unix/sysv/linux/tst-pkey.c
> @@ -37,7 +37,7 @@ static pthread_barrier_t barrier;
>
> /* The keys used for testing. These have been allocated with access
> rights set based on their array index. */
> -enum { key_count = 4 };
> +enum { key_count = 3 };
> static int keys[key_count];
> static volatile int *pages[key_count];
>
> @@ -111,14 +111,16 @@ check_page_access (int page, bool write)
> }
>
> static volatile sig_atomic_t sigusr1_handler_ran;
> -
> -/* Used to check that access is revoked in signal handlers. */
> +/* Used to check the behavior in signal handlers. In x86 all access are
> + revoked during signal handling. In PowerPC the key permissions are
> + inherited by the interrupted thread. This test accept both approaches. */
> static void
> sigusr1_handler (int signum)
> {
> TEST_COMPARE (signum, SIGUSR1);
> for (int i = 0; i < key_count; ++i)
> - TEST_COMPARE (pkey_get (keys[i]), PKEY_DISABLE_ACCESS);
> + TEST_VERIFY (pkey_get (keys[i]) == PKEY_DISABLE_ACCESS
> + || pkey_get (keys[i]) == i);
> sigusr1_handler_ran = 1;
> }
This version looks okay to me. Thanks.
Florian
More information about the Libc-alpha
mailing list