2008-03-27 Corinna Vinschen <corinna@vinschen.de>
+ * syscalls.cc (rename): Fix setting errno in case of trailing "/."
+
+2008-03-27 Corinna Vinschen <corinna@vinschen.de>
+
* fhandler_socket.cc: Create shared objects session local throughout.
* shared.cc (shared_name): Add argument to allow opening session
local shared memory.
if (efault.faulted (EFAULT))
return -1;
- if (has_dot_last_component (oldpath, true)
- || has_dot_last_component (newpath, true))
+ if (has_dot_last_component (oldpath, true))
{
- set_errno (EINVAL);
+ oldpc.check (oldpath, PC_SYM_NOFOLLOW, stat_suffixes);
+ set_errno (oldpc.isdir () ? EBUSY : ENOTDIR);
+ goto out;
+ }
+ if (has_dot_last_component (newpath, true))
+ {
+ newpc.check (newpath, PC_SYM_NOFOLLOW, stat_suffixes);
+ set_errno (!newpc.exists () ? ENOENT : newpc.isdir () ? EBUSY : ENOTDIR);
goto out;
}