summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-10-08 15:11:44 -0700
committerElliott Hughes <enh@google.com>2014-10-08 15:11:44 -0700
commit75129ae9f3448905bf837d774a94ff973efd812e (patch)
tree16ec05cad9c84f1c831d59ff7d51ffb3569ee390
parent1364101067072c2ce6fa395cdef2534f338f30b1 (diff)
downloadbionic-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.cpp35
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;