forked from OSchip/llvm-project
Revert "[sanitizer] Intercept sem_open/sem_unlink"
This reverts commit 69a909b9fe
.
This commit is contained in:
parent
69a909b9fe
commit
9b74924b6c
|
@ -6538,29 +6538,6 @@ INTERCEPTOR(int, sem_getvalue, __sanitizer_sem_t *s, int *sval) {
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
INTERCEPTOR(__sanitizer_sem_t *, sem_open, const char *name, int oflag, ...) {
|
|
||||||
void *ctx;
|
|
||||||
va_list ap;
|
|
||||||
va_start(ap, oflag);
|
|
||||||
u32 mode = va_arg(ap, u32);
|
|
||||||
u32 value = va_arg(ap, u32);
|
|
||||||
COMMON_INTERCEPTOR_ENTER(ctx, sem_open, name, oflag, mode, value);
|
|
||||||
COMMON_INTERCEPTOR_READ_RANGE(ctx, name, REAL(strlen)(name) + 1);
|
|
||||||
__sanitizer_sem_t *s = REAL(sem_open)(name, oflag, mode, value);
|
|
||||||
if (s)
|
|
||||||
COMMON_INTERCEPTOR_INITIALIZE_RANGE(s, sizeof(*s));
|
|
||||||
va_end(ap);
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
INTERCEPTOR(int, sem_unlink, const char *name) {
|
|
||||||
void *ctx;
|
|
||||||
COMMON_INTERCEPTOR_ENTER(ctx, sem_unlink, name);
|
|
||||||
COMMON_INTERCEPTOR_READ_RANGE(ctx, name, REAL(strlen)(name) + 1);
|
|
||||||
return REAL(sem_unlink)(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
# define INIT_SEM \
|
# define INIT_SEM \
|
||||||
COMMON_INTERCEPT_FUNCTION(sem_init); \
|
COMMON_INTERCEPT_FUNCTION(sem_init); \
|
||||||
COMMON_INTERCEPT_FUNCTION(sem_destroy); \
|
COMMON_INTERCEPT_FUNCTION(sem_destroy); \
|
||||||
|
@ -6568,9 +6545,7 @@ INTERCEPTOR(int, sem_unlink, const char *name) {
|
||||||
COMMON_INTERCEPT_FUNCTION(sem_trywait); \
|
COMMON_INTERCEPT_FUNCTION(sem_trywait); \
|
||||||
COMMON_INTERCEPT_FUNCTION(sem_timedwait); \
|
COMMON_INTERCEPT_FUNCTION(sem_timedwait); \
|
||||||
COMMON_INTERCEPT_FUNCTION(sem_post); \
|
COMMON_INTERCEPT_FUNCTION(sem_post); \
|
||||||
COMMON_INTERCEPT_FUNCTION(sem_getvalue); \
|
COMMON_INTERCEPT_FUNCTION(sem_getvalue);
|
||||||
COMMON_INTERCEPT_FUNCTION(sem_open); \
|
|
||||||
COMMON_INTERCEPT_FUNCTION(sem_unlink);
|
|
||||||
#else
|
#else
|
||||||
# define INIT_SEM
|
# define INIT_SEM
|
||||||
#endif // SANITIZER_INTERCEPT_SEM
|
#endif // SANITIZER_INTERCEPT_SEM
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
// RUN: %clangxx -O0 %s -o %t && %run %t
|
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <semaphore.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
char name[1024];
|
|
||||||
sprintf(name, "/sem_open_test_%d", getpid());
|
|
||||||
|
|
||||||
sem_t *s1 = sem_open(name, O_CREAT, 0644, 123);
|
|
||||||
assert(s1 != SEM_FAILED);
|
|
||||||
|
|
||||||
sem_t *s2 = sem_open(name, O_CREAT, 0644, 123);
|
|
||||||
assert(s2 != SEM_FAILED);
|
|
||||||
|
|
||||||
assert(sem_close(s1) == 0);
|
|
||||||
assert(sem_close(s2) == 0);
|
|
||||||
|
|
||||||
assert(sem_unlink(name) == 0);
|
|
||||||
}
|
|
Loading…
Reference in New Issue