diff options
Diffstat (limited to 'sysdeps/pthread/sem_unlink.c')
-rw-r--r-- | sysdeps/pthread/sem_unlink.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sysdeps/pthread/sem_unlink.c b/sysdeps/pthread/sem_unlink.c index faafbe4e91..1f06a55b8e 100644 --- a/sysdeps/pthread/sem_unlink.c +++ b/sysdeps/pthread/sem_unlink.c @@ -27,11 +27,15 @@ int sem_unlink (const char *name) { - /* Construct the filename. */ - SHM_GET_NAME (ENOENT, -1, SEM_SHM_PREFIX); + struct shmdir_name dirname; + if (__shm_get_name (&dirname, name, true) != 0) + { + __set_errno (ENOENT); + return -1; + } /* Now try removing it. */ - int ret = unlink (shm_name); + int ret = unlink (dirname.name); if (ret < 0 && errno == EPERM) __set_errno (EACCES); return ret; |