diff options
author | Pino Toscano <toscano.pino@tiscali.it> | 2011-11-06 12:39:04 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2011-11-06 13:12:14 +0100 |
commit | 56e25a91e9e25eba8da099efa89c3c487c3490cf (patch) | |
tree | e9eef9929fbca4947557a015fcbf571592adefba /tests/test-7.c | |
parent | ea6390b2f20a03b7d504bc68a1c95e645d271149 (diff) |
pthread_getspecific, pthread_setspecific: check the key validity
When getting a TSD, handle gracefully the case of an invalid key.
When setting a TSD, check for the validity of the key as recommended
(although not required) by POSIX. This also avoids potentially
filling the `thread_specifics' hash of threads with TSD of invalid
keys.
Add two simple checks in test-7.c for the two situations above.
* sysdeps/hurd/pt-getspecific.c (pthread_getspecific): Check the
validity of the specified key.
* sysdeps/hurd/pt-setspecific.c (pthread_setspecific): Likewise.
* tests/test-7.c (main): Add two assertions.
Diffstat (limited to 'tests/test-7.c')
-rw-r--r-- | tests/test-7.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/tests/test-7.c b/tests/test-7.c index 8159be3..22fb1ca 100644 --- a/tests/test-7.c +++ b/tests/test-7.c @@ -42,6 +42,9 @@ main (int argc, char **argv) assert ((pthread_t) val == pthread_self ()); } + assert (pthread_getspecific ((pthread_key_t) 0) == NULL); + assert (pthread_setspecific ((pthread_key_t) 0, (void *) 0x1) == EINVAL); + for (i = 0; i < KEYS; i ++) err = pthread_key_create (&key[i], des); |