[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