CVE-2016-2115: s4:libcli/raw: pass the minprotocol to smb_raw_negotiate*()
[samba.git] / source4 / libcli / raw / rawnegotiate.c
index 32e8a9195b257103a08533b849e434f5e59ffa68..4b42c2662a0ffd2453b65c7f25ae714022446c98 100644 (file)
@@ -37,6 +37,7 @@ static void smb_raw_negotiate_done(struct tevent_req *subreq);
 struct tevent_req *smb_raw_negotiate_send(TALLOC_CTX *mem_ctx,
                                          struct tevent_context *ev,
                                          struct smbcli_transport *transport,
+                                         int minprotocol,
                                          int maxprotocol)
 {
        struct tevent_req *req;
@@ -58,7 +59,7 @@ struct tevent_req *smb_raw_negotiate_send(TALLOC_CTX *mem_ctx,
        subreq = smbXcli_negprot_send(state, ev,
                                      transport->conn,
                                      timeout_msec,
-                                     PROTOCOL_CORE,
+                                     minprotocol,
                                      maxprotocol);
        if (tevent_req_nomem(subreq, req)) {
                return tevent_req_post(req, ev);
@@ -131,7 +132,8 @@ NTSTATUS smb_raw_negotiate_recv(struct tevent_req *req)
 /*
  Send a negprot command (sync interface)
 */
-NTSTATUS smb_raw_negotiate(struct smbcli_transport *transport, bool unicode, int maxprotocol)
+NTSTATUS smb_raw_negotiate(struct smbcli_transport *transport, bool unicode,
+                          int minprotocol, int maxprotocol)
 {
        NTSTATUS status = NT_STATUS_INTERNAL_ERROR;
        struct tevent_req *subreq = NULL;
@@ -140,6 +142,7 @@ NTSTATUS smb_raw_negotiate(struct smbcli_transport *transport, bool unicode, int
        subreq = smb_raw_negotiate_send(transport,
                                        transport->ev,
                                        transport,
+                                       minprotocol,
                                        maxprotocol);
        if (subreq == NULL) {
                return NT_STATUS_NO_MEMORY;