dlist: remove unneeded type argument from DLIST_ADD_END()
[samba.git] / source4 / smb_server / smb2 / receive.c
index 5619313e90f6ad70d66fcf9529704487fcee3e57..3e5dc4de173b43b0966825c26a292f17b581f584 100644 (file)
@@ -164,8 +164,6 @@ static void smb2srv_chain_reply(struct smb2srv_request *p_req)
        uint32_t flags;
        uint32_t last_hdr_offset;
 
-       talloc_steal(req, p_req);
-
        last_hdr_offset = p_req->in.hdr - p_req->in.buffer;
 
        chain_offset = p_req->chain_offset;
@@ -192,6 +190,8 @@ static void smb2srv_chain_reply(struct smb2srv_request *p_req)
                return;
        }
 
+       talloc_steal(req, p_req);
+
        req->in.buffer          = talloc_steal(req, p_req->in.buffer);
        req->in.size            = p_req->in.size;
        req->request_time       = p_req->request_time;
@@ -210,8 +210,10 @@ static void smb2srv_chain_reply(struct smb2srv_request *p_req)
                uint16_t opcode = SVAL(req->in.hdr, SMB2_HDR_OPCODE);
                if (opcode == SMB2_OP_NEGPROT) {
                        smbsrv_terminate_connection(smb_conn, "Bad body size in SMB2 negprot");
+                       return;
                } else {
                        smb2srv_send_error(req, NT_STATUS_INVALID_PARAMETER);
+                       return;
                }
        }
 
@@ -286,6 +288,7 @@ void smb2srv_send_reply(struct smb2srv_request *req)
        status = packet_send(req->smb_conn->packet, blob);
        if (!NT_STATUS_IS_OK(status)) {
                smbsrv_terminate_connection(req->smb_conn, nt_errstr(status));
+               return;
        }
        if (req->chain_offset) {
                smb2srv_chain_reply(req);
@@ -449,7 +452,7 @@ static NTSTATUS smb2srv_reply(struct smb2srv_request *req)
        case SMB2_OP_KEEPALIVE:
                smb2srv_keepalive_recv(req);
                return NT_STATUS_OK;
-       case SMB2_OP_FIND:
+       case SMB2_OP_QUERY_DIRECTORY:
                if (!req->session) goto nosession;
                if (!req->tcon) goto notcon;
                smb2srv_find_recv(req);
@@ -615,7 +618,7 @@ NTSTATUS smb2srv_queue_pending(struct smb2srv_request *req)
                return NT_STATUS_INSUFFICIENT_RESOURCES;
        }
 
-       DLIST_ADD_END(req->smb_conn->requests2.list, req, struct smb2srv_request *);
+       DLIST_ADD_END(req->smb_conn->requests2.list, req);
        req->pending_id = id;
 
        talloc_set_destructor(req, smb2srv_request_deny_destructor);