From: Ralph Boehme Date: Tue, 19 Dec 2023 12:06:55 +0000 (+0100) Subject: smbd: return the correct error in can_rename() X-Git-Tag: samba-4.18.10~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c8e1d26cea525c6d0642923bf1b5196813145744;p=thirdparty%2Fsamba.git smbd: return the correct error in can_rename() This is what Windows returns for this case. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13688 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 276c5bd851ab6ab818a49d9c47f6b96de8024778) --- diff --git a/source3/smbd/smb2_reply.c b/source3/smbd/smb2_reply.c index 9476c69b73c..a4055c00a31 100644 --- a/source3/smbd/smb2_reply.c +++ b/source3/smbd/smb2_reply.c @@ -1156,6 +1156,11 @@ ssize_t sendfile_short_send(struct smbXsrv_connection *xconn, static NTSTATUS can_rename(connection_struct *conn, files_struct *fsp, uint16_t dirtype) { + if (fsp->fsp_name->twrp != 0) { + /* Get the error right, this is what Windows returns. */ + return NT_STATUS_NOT_SAME_DEVICE; + } + if (!CAN_WRITE(conn)) { return NT_STATUS_MEDIA_WRITE_PROTECTED; }