s3-librpc Use gensec_sig_size() instead of a fixed NTLMSSP_SIG_SIZE
authorAndrew Bartlett <abartlet@samba.org>
Wed, 21 Dec 2011 04:54:20 +0000 (15:54 +1100)
committerStefan Metzmacher <metze@samba.org>
Thu, 22 Dec 2011 19:57:27 +0000 (20:57 +0100)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Thu Dec 22 20:57:27 CET 2011 on sn-devel-104

source3/librpc/rpc/dcerpc_helpers.c

index 206443434f10517215cb1a99653d3cdef5ef9cce..1e8edc334715cb4c383df04cb7fff44b2bc7f38a 100644 (file)
@@ -267,6 +267,7 @@ NTSTATUS dcerpc_guess_sizes(struct pipe_auth_data *auth,
 {
        size_t max_len;
        size_t mod_len;
+       struct gensec_security *gensec_security;
        struct schannel_state *schannel_auth;
        struct spnego_context *spnego_ctx;
        struct gse_context *gse_ctx;
@@ -315,7 +316,9 @@ NTSTATUS dcerpc_guess_sizes(struct pipe_auth_data *auth,
                }
                switch (auth_type) {
                case SPNEGO_NTLMSSP:
-                       *auth_len = NTLMSSP_SIG_SIZE;
+                       gensec_security = talloc_get_type_abort(auth_ctx,
+                                                               struct gensec_security);
+                       *auth_len = gensec_sig_size(gensec_security, max_len);
                        break;
 
                case SPNEGO_KRB5:
@@ -334,7 +337,9 @@ NTSTATUS dcerpc_guess_sizes(struct pipe_auth_data *auth,
                break;
 
        case DCERPC_AUTH_TYPE_NTLMSSP:
-               *auth_len = NTLMSSP_SIG_SIZE;
+               gensec_security = talloc_get_type_abort(auth->auth_ctx,
+                                                       struct gensec_security);
+               *auth_len = gensec_sig_size(gensec_security, max_len);
                break;
 
        case DCERPC_AUTH_TYPE_SCHANNEL: