s3-gse: make sure GSS_C_CONF_FLAG implies GSS_C_INTEG_FLAG
authorStefan Metzmacher <metze@samba.org>
Fri, 20 Jan 2012 14:55:55 +0000 (15:55 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 20 Jan 2012 22:55:54 +0000 (23:55 +0100)
metze

source3/librpc/crypto/gse.c

index 7cf116522d316ad9f98875a2739cec4402feed98..5bd2740a5ad8cb8a331cc5d3ca41d19a3c27a1bf 100644 (file)
@@ -189,6 +189,7 @@ static NTSTATUS gse_context_init(TALLOC_CTX *mem_ctx,
                gse_ctx->gss_want_flags |= GSS_C_INTEG_FLAG;
        }
        if (do_seal) {
+               gse_ctx->gss_want_flags |= GSS_C_INTEG_FLAG;
                gse_ctx->gss_want_flags |= GSS_C_CONF_FLAG;
        }
 
@@ -548,6 +549,11 @@ static NTSTATUS gse_verify_server_auth_flags(struct gse_context *gse_ctx)
                if (!(gse_ctx->gss_got_flags & GSS_C_CONF_FLAG)) {
                        return NT_STATUS_ACCESS_DENIED;
                }
+
+               /* GSS_C_CONF_FLAG implies GSS_C_INTEG_FLAG */
+               if (!(gse_ctx->gss_got_flags & GSS_C_INTEG_FLAG)) {
+                       return NT_STATUS_ACCESS_DENIED;
+               }
        }
 
        /* GSS_C_DCE_STYLE */