diff options
author | Elliott Hughes <enh@google.com> | 2014-10-08 15:11:44 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2014-10-08 15:11:44 -0700 |
commit | 75129ae9f3448905bf837d774a94ff973efd812e (patch) | |
tree | 16ec05cad9c84f1c831d59ff7d51ffb3569ee390 | |
parent | 1364101067072c2ce6fa395cdef2534f338f30b1 (diff) | |
download | bionic-75129ae9f3448905bf837d774a94ff973efd812e.zip bionic-75129ae9f3448905bf837d774a94ff973efd812e.tar.gz bionic-75129ae9f3448905bf837d774a94ff973efd812e.tar.bz2 |
Don't silently return EINVAL for a NULL sem_t*.
Bug: 17571197
Change-Id: Ied31d8de87fc10d20dc338be0457e9a4ddb9a0a5
-rw-r--r-- | libc/bionic/semaphore.cpp | 35 |
1 files changed, 1 insertions, 34 deletions
diff --git a/libc/bionic/semaphore.cpp b/libc/bionic/semaphore.cpp index c23eb75..dabfea0 100644 --- a/libc/bionic/semaphore.cpp +++ b/libc/bionic/semaphore.cpp @@ -86,11 +86,6 @@ static inline uint32_t SEM_GET_SHARED(sem_t* sem) { int sem_init(sem_t* sem, int pshared, unsigned int value) { - if (sem == NULL) { - errno = EINVAL; - return -1; - } - // Ensure that 'value' can be stored in the semaphore. if (value > SEM_VALUE_MAX) { errno = EINVAL; @@ -104,11 +99,7 @@ int sem_init(sem_t* sem, int pshared, unsigned int value) { return 0; } -int sem_destroy(sem_t* sem) { - if (sem == NULL) { - errno = EINVAL; - return -1; - } +int sem_destroy(sem_t*) { return 0; } @@ -205,11 +196,6 @@ static int __sem_inc(volatile uint32_t* sem) { } int sem_wait(sem_t* sem) { - if (sem == NULL) { - errno = EINVAL; - return -1; - } - uint32_t shared = SEM_GET_SHARED(sem); while (true) { @@ -223,11 +209,6 @@ int sem_wait(sem_t* sem) { } int sem_timedwait(sem_t* sem, const timespec* abs_timeout) { - if (sem == NULL) { - errno = EINVAL; - return -1; - } - // POSIX says we need to try to decrement the semaphore // before checking the timeout value. Note that if the // value is currently 0, __sem_trydec() does nothing. @@ -271,10 +252,6 @@ int sem_timedwait(sem_t* sem, const timespec* abs_timeout) { } int sem_post(sem_t* sem) { - if (sem == NULL) { - return EINVAL; - } - uint32_t shared = SEM_GET_SHARED(sem); ANDROID_MEMBAR_FULL(); @@ -292,11 +269,6 @@ int sem_post(sem_t* sem) { } int sem_trywait(sem_t* sem) { - if (sem == NULL) { - errno = EINVAL; - return -1; - } - if (__sem_trydec(&sem->count) > 0) { ANDROID_MEMBAR_FULL(); return 0; @@ -307,11 +279,6 @@ int sem_trywait(sem_t* sem) { } int sem_getvalue(sem_t* sem, int* sval) { - if (sem == NULL || sval == NULL) { - errno = EINVAL; - return -1; - } - int val = SEMCOUNT_TO_VALUE(sem->count); if (val < 0) { val = 0; |