summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source4/smb_server/smb_server.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/source4/smb_server/smb_server.c b/source4/smb_server/smb_server.c
index 86aa46ba9a..3b4d06f3b2 100644
--- a/source4/smb_server/smb_server.c
+++ b/source4/smb_server/smb_server.c
@@ -511,7 +511,12 @@ static void switch_message(int type, struct smbsrv_request *req)
/* does this protocol need a valid tree connection? */
if ((flags & AS_USER) && !req->tcon) {
- req_reply_error(req, NT_STATUS_DOS(ERRSRV, ERRinvnid));
+ if (type == SMBntcreateX) {
+ /* amazingly, the error code depends on the command */
+ req_reply_error(req, NT_STATUS_DOS(ERRSRV, ERRinvnid));
+ } else {
+ req_reply_error(req, NT_STATUS_INVALID_HANDLE);
+ }
return;
}