diff options
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r-- | winsup/cygwin/syscalls.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index 3945912f3..c7d70fdbc 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -531,6 +531,13 @@ _link (const char *a, const char *b) set_errno (real_b.error); goto done; } + + if (real_b.file_attributes () != (DWORD)-1) + { + syscall_printf ("file '%s' exists?", (char *)real_b); + set_errno (EEXIST); + goto done; + } if (real_b.get_win32 ()[strlen (real_b.get_win32 ()) - 1] == '.') { syscall_printf ("trailing dot, bailing out"); |