1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00

s3:smb2 fix Bug 8428 - wrong reply to DHnC (durable handle reconnect)

According to [MS-SMB2] 3.3.5.9.7
(http://msdn.microsoft.com/en-us/library/cc246784%28v=PROT.13%29.aspx),
smbd must reply with NT_STATUS_OBJECT_NAME_NOT_FOUND as it does not
support durable file-handles yet.

I have seen w2k8r2 running xcopy /C ending up in an endless loop
trying to get back the original file handle from smbd sending the same
requests over and over.

Metze, Jeremy, please check!

Signed-off-by: Jeremy Allison <jra@samba.org>

Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Tue Aug 30 22:20:36 CEST 2011 on sn-devel-104
This commit is contained in:
Christian Ambach 2011-08-30 17:39:56 +02:00 committed by Jeremy Allison
parent a38ff63fcd
commit b58e7bb88e

View File

@ -537,7 +537,7 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx,
if (exta) {
if (dhnc) {
tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
tevent_req_nterror(req,NT_STATUS_OBJECT_NAME_NOT_FOUND);
return tevent_req_post(req, ev);
}
@ -552,7 +552,7 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx,
if (mxac) {
if (dhnc) {
tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
tevent_req_nterror(req, NT_STATUS_OBJECT_NAME_NOT_FOUND);
return tevent_req_post(req, ev);
}
@ -570,7 +570,7 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx,
enum ndr_err_code ndr_err;
if (dhnc) {
tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
tevent_req_nterror(req, NT_STATUS_OBJECT_NAME_NOT_FOUND);
return tevent_req_post(req, ev);
}
@ -592,7 +592,7 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx,
if (dhnq) {
if (dhnc) {
tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
tevent_req_nterror(req, NT_STATUS_OBJECT_NAME_NOT_FOUND);
return tevent_req_post(req, ev);
}
@ -618,7 +618,7 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx,
if (alsi) {
if (dhnc) {
tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
tevent_req_nterror(req, NT_STATUS_OBJECT_NAME_NOT_FOUND);
return tevent_req_post(req, ev);
}
@ -635,7 +635,7 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx,
struct tm *tm;
if (dhnc) {
tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
tevent_req_nterror(req, NT_STATUS_OBJECT_NAME_NOT_FOUND);
return tevent_req_post(req, ev);
}