Jinoh Kang (@iamahuman) commented about server/fd.c:
file_set_error();
unlinkat( dirfd, tmpname, 0 );
goto ret;
}
break;
}
/* directories can't have hardlinks, so just rename it to tmpname */
if (!renameat( dirfd, srcname, dirfd, tmpname ))
break;
if (errno != EEXIST && errno != ENOTDIR && errno != ENOTEMPTY)
{
file_set_error();
goto ret;
}
To elaborate on my suggestion (untested):
```suggestion:-6+0 if (mkdirat( dirfd, tmpname, 0777 )) { if (errno == EEXIST) continue; file_set_error(); goto ret; }
if (renameat( dirfd, srcname, dirfd, tmpname )) { file_set_error(); unlinkat( dirfd, tmpname, AT_REMOVEDIR ); goto ret; }
break; ```