summaryrefslogtreecommitdiff
path: root/source4/smb_server/smb_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/smb_server/smb_server.c')
-rw-r--r--source4/smb_server/smb_server.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/source4/smb_server/smb_server.c b/source4/smb_server/smb_server.c
index aceae08ad8..ce50df04c3 100644
--- a/source4/smb_server/smb_server.c
+++ b/source4/smb_server/smb_server.c
@@ -558,7 +558,6 @@ static void construct_reply(struct request_context *req)
return;
}
-
/* Make sure this is an SMB packet */
if (memcmp(req->in.hdr,"\377SMB",4) != 0) {
DEBUG(2,("Non-SMB packet of length %d. Terminating connection\n",
@@ -584,6 +583,11 @@ static void construct_reply(struct request_context *req)
req->flags = CVAL(req->in.hdr, HDR_FLG);
req->flags2 = SVAL(req->in.hdr, HDR_FLG2);
+ if (!req_signing_check_incoming(req)) {
+ req_reply_error(req, NT_STATUS_ACCESS_DENIED);
+ return;
+ }
+
switch_message(type, req);
}
@@ -733,7 +737,7 @@ void init_smbsession(struct event_context *ev, struct model_ops *model_ops, int
mem_ctx = talloc_init("server_context");
- smb = (struct server_context *)talloc(mem_ctx, sizeof(*smb));
+ smb = talloc_p(mem_ctx, struct server_context);
if (!smb) return;
ZERO_STRUCTP(smb);