RFC: Junction Point/NT Symlink Support [2]
Hans Leidekker
hans at codeweavers.com
Fri Apr 19 03:29:54 CDT 2019
On Wed, 2019-04-17 at 08:29 -0600, Erich E. Hoover wrote:
> Thank you in advance to those who look these patches over, your
> feedback is greatly appreciated.
> +NTSTATUS FILE_RemoveSymlink(HANDLE handle, REPARSE_GUID_DATA_BUFFER *buffer)
> +{
> + int dest_fd, needs_close;
> + ANSI_STRING unix_name;
> + NTSTATUS status;
> +
> + if ((status = server_get_unix_fd( handle, FILE_SPECIAL_ACCESS, &dest_fd, &needs_close, NULL, NULL )))
> + return status;
> +
> + if ((status = server_get_unix_name( handle, &unix_name )))
> + goto cleanup;
> +
> + TRACE("Deleting symlink %s\n", unix_name.Buffer);
> + if (unlink( unix_name.Buffer ) < 0)
> + {
> + status = FILE_GetNtStatus();
> + goto cleanup;
> + }
> + if (mkdir( unix_name.Buffer, 0775 ) < 0)
> + {
> + status = FILE_GetNtStatus();
> + goto cleanup;
> + }
Shouldn't this also be a single operation? What about ownership and
permissions on the directory? Should they be preserved?
More information about the wine-devel
mailing list