summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorChristian Ambach <ambi@samba.org>2011-08-30 17:39:56 +0200
committerJeremy Allison <jra@samba.org>2011-08-30 22:20:36 +0200
commitb58e7bb88eb29f35527e1e9dc0e0a36ea034cf80 (patch)
tree1f851509f10bf4dc6340084207648450d5ec364b /source3/smbd
parenta38ff63fcdc0d3ac1669b1c1343006d9db4e926b (diff)
downloadsamba-b58e7bb88eb29f35527e1e9dc0e0a36ea034cf80.tar.gz
samba-b58e7bb88eb29f35527e1e9dc0e0a36ea034cf80.tar.bz2
samba-b58e7bb88eb29f35527e1e9dc0e0a36ea034cf80.zip
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
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/smb2_create.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c
index aaa461c503..9a60fdad82 100644
--- a/source3/smbd/smb2_create.c
+++ b/source3/smbd/smb2_create.c
@@ -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);
}