summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/pthread.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/pthread.cc')
-rw-r--r--winsup/cygwin/pthread.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/winsup/cygwin/pthread.cc b/winsup/cygwin/pthread.cc
index deb771682..d35cee616 100644
--- a/winsup/cygwin/pthread.cc
+++ b/winsup/cygwin/pthread.cc
@@ -15,6 +15,7 @@
#include "cygerrno.h"
#include <stdarg.h>
#include <sys/fcntl.h>
+#include "cygtls.h"
extern "C"
{
@@ -165,8 +166,14 @@ sem_destroy (sem_t * sem)
static bool
mangle_sem_name (char *mangled, const char *name)
{
- if (check_null_empty_str_errno (name))
+ myfault efault;
+ if (efault.faulted (EFAULT))
return false;
+ if (!*name)
+ {
+ set_errno (ENOENT);
+ return false;
+ }
int len = strlen (name);
if (len >= CYG_MAX_PATH
|| (wincap.has_terminal_services () && len >= CYG_MAX_PATH - 7))