OSDN Git Service

* syscalls.cc (rename): Don't exit prematurely with EROFS when trying
authorcorinna <corinna>
Wed, 13 Jan 2010 09:45:16 +0000 (09:45 +0000)
committercorinna <corinna>
Wed, 13 Jan 2010 09:45:16 +0000 (09:45 +0000)
to rename an AF_LOCAL socket or when trying to replace an AF_LOCAL
socket.

winsup/cygwin/ChangeLog
winsup/cygwin/syscalls.cc

index 02a0659..3160118 100644 (file)
@@ -1,3 +1,9 @@
+2010-01-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * syscalls.cc (rename): Don't exit prematurely with EROFS when trying
+       to rename an AF_LOCAL socket or when trying to replace an AF_LOCAL
+       socket.
+
 2010-01-12  Corinna Vinschen  <corinna@vinschen.de>
 
        * globals.cc (ro_u_nwfs): New R/O unicode string.
index 5cc59e6..ec58971 100644 (file)
@@ -1765,7 +1765,7 @@ rename (const char *oldpath, const char *newpath)
       set_errno (ENOENT);
       goto out;
     }
-  if (oldpc.isspecial ()) /* No renames from virtual FS */
+  if (oldpc.isspecial () && !oldpc.issocket ()) /* No renames from virtual FS */
     {
       set_errno (EROFS);
       goto out;
@@ -1814,7 +1814,7 @@ rename (const char *oldpath, const char *newpath)
       set_errno (newpc.error);
       goto out;
     }
-  if (newpc.isspecial ()) /* No renames to virtual FSes */
+  if (newpc.isspecial () && !newpc.issocket ()) /* No renames to virtual FSes */
     {
       set_errno (EROFS);
       goto out;