diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/smb_server/smb_server.c | 7 |
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; } |