From: Jeremy Allison Date: Thu, 11 May 2017 22:56:29 +0000 (-0700) Subject: gensec: Add a TALLOC_CTX * to gensec_register(). X-Git-Tag: ldb-1.1.30~211 X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=3cfa58de1256de94461e9e303984030fa6483568;p=samba.git gensec: Add a TALLOC_CTX * to gensec_register(). Pass in the TALLOC_CTX * from the module init to remove another talloc_autofree_context() use. Signed-off-by: Jeremy Allison Reviewed-by: Ralph Boehme --- diff --git a/auth/gensec/external.c b/auth/gensec/external.c index 92295bcf03f..01580456794 100644 --- a/auth/gensec/external.c +++ b/auth/gensec/external.c @@ -115,7 +115,7 @@ NTSTATUS gensec_external_init(TALLOC_CTX *ctx) { NTSTATUS ret; - ret = gensec_register(&gensec_external_ops); + ret = gensec_register(ctx, &gensec_external_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_external_ops.name)); diff --git a/auth/gensec/gensec.h b/auth/gensec/gensec.h index 3924a7ce987..e7b9477bffc 100644 --- a/auth/gensec/gensec.h +++ b/auth/gensec/gensec.h @@ -181,7 +181,8 @@ NTSTATUS gensec_start_mech_by_oid(struct gensec_security *gensec_security, const char *gensec_get_name_by_oid(struct gensec_security *gensec_security, const char *oid_string); struct cli_credentials *gensec_get_credentials(struct gensec_security *gensec_security); NTSTATUS gensec_init(void); -NTSTATUS gensec_register(const struct gensec_security_ops *ops); +NTSTATUS gensec_register(TALLOC_CTX *ctx, + const struct gensec_security_ops *ops); const struct gensec_security_ops *gensec_security_by_oid(struct gensec_security *gensec_security, const char *oid_string); const struct gensec_security_ops *gensec_security_by_sasl_name(struct gensec_security *gensec_security, diff --git a/auth/gensec/gensec_start.c b/auth/gensec/gensec_start.c index 83a86cfd654..0f7e8265498 100644 --- a/auth/gensec/gensec_start.c +++ b/auth/gensec/gensec_start.c @@ -893,7 +893,8 @@ _PUBLIC_ NTSTATUS gensec_set_credentials(struct gensec_security *gensec_security The 'name' can be later used by other backends to find the operations structure for this backend. */ -_PUBLIC_ NTSTATUS gensec_register(const struct gensec_security_ops *ops) +_PUBLIC_ NTSTATUS gensec_register(TALLOC_CTX *ctx, + const struct gensec_security_ops *ops) { if (gensec_security_by_name(NULL, ops->name) != NULL) { /* its already registered! */ @@ -902,7 +903,7 @@ _PUBLIC_ NTSTATUS gensec_register(const struct gensec_security_ops *ops) return NT_STATUS_OBJECT_NAME_COLLISION; } - generic_security_ops = talloc_realloc(talloc_autofree_context(), + generic_security_ops = talloc_realloc(ctx, generic_security_ops, const struct gensec_security_ops *, gensec_num_backends+2); diff --git a/auth/gensec/ncalrpc.c b/auth/gensec/ncalrpc.c index 8916ef5d88a..f28a1c43b49 100644 --- a/auth/gensec/ncalrpc.c +++ b/auth/gensec/ncalrpc.c @@ -342,7 +342,7 @@ _PUBLIC_ NTSTATUS gensec_ncalrpc_as_system_init(TALLOC_CTX *ctx) { NTSTATUS status; - status = gensec_register(&gensec_ncalrpc_security_ops); + status = gensec_register(ctx, &gensec_ncalrpc_security_ops); if (!NT_STATUS_IS_OK(status)) { DEBUG(0, ("Failed to register '%s' gensec backend!\n", gensec_ncalrpc_security_ops.name)); diff --git a/auth/gensec/schannel.c b/auth/gensec/schannel.c index bf169d4acf1..41f635182cf 100644 --- a/auth/gensec/schannel.c +++ b/auth/gensec/schannel.c @@ -852,7 +852,7 @@ static const struct gensec_security_ops gensec_schannel_security_ops = { _PUBLIC_ NTSTATUS gensec_schannel_init(TALLOC_CTX *ctx) { NTSTATUS ret; - ret = gensec_register(&gensec_schannel_security_ops); + ret = gensec_register(ctx, &gensec_schannel_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_schannel_security_ops.name)); diff --git a/auth/gensec/spnego.c b/auth/gensec/spnego.c index 4b3edc686cc..484f49175fc 100644 --- a/auth/gensec/spnego.c +++ b/auth/gensec/spnego.c @@ -1697,7 +1697,7 @@ static const struct gensec_security_ops gensec_spnego_security_ops = { _PUBLIC_ NTSTATUS gensec_spnego_init(TALLOC_CTX *ctx) { NTSTATUS ret; - ret = gensec_register(&gensec_spnego_security_ops); + ret = gensec_register(ctx, &gensec_spnego_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_spnego_security_ops.name)); diff --git a/auth/ntlmssp/ntlmssp.c b/auth/ntlmssp/ntlmssp.c index ec2f6d93172..cb8f10b9459 100644 --- a/auth/ntlmssp/ntlmssp.c +++ b/auth/ntlmssp/ntlmssp.c @@ -256,14 +256,14 @@ _PUBLIC_ NTSTATUS gensec_ntlmssp_init(TALLOC_CTX *ctx) { NTSTATUS ret; - ret = gensec_register(&gensec_ntlmssp_security_ops); + ret = gensec_register(ctx, &gensec_ntlmssp_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_ntlmssp_security_ops.name)); return ret; } - ret = gensec_register(&gensec_ntlmssp_resume_ccache_ops); + ret = gensec_register(ctx, &gensec_ntlmssp_resume_ccache_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_ntlmssp_resume_ccache_ops.name)); diff --git a/source4/auth/gensec/gensec_gssapi.c b/source4/auth/gensec/gensec_gssapi.c index 73a08f1ab58..2b3c56b9912 100644 --- a/source4/auth/gensec/gensec_gssapi.c +++ b/source4/auth/gensec/gensec_gssapi.c @@ -1644,21 +1644,21 @@ _PUBLIC_ NTSTATUS gensec_gssapi_init(TALLOC_CTX *ctx) { NTSTATUS ret; - ret = gensec_register(&gensec_gssapi_spnego_security_ops); + ret = gensec_register(ctx, &gensec_gssapi_spnego_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_gssapi_spnego_security_ops.name)); return ret; } - ret = gensec_register(&gensec_gssapi_krb5_security_ops); + ret = gensec_register(ctx, &gensec_gssapi_krb5_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_gssapi_krb5_security_ops.name)); return ret; } - ret = gensec_register(&gensec_gssapi_sasl_krb5_security_ops); + ret = gensec_register(ctx, &gensec_gssapi_sasl_krb5_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_gssapi_sasl_krb5_security_ops.name)); diff --git a/source4/auth/gensec/gensec_krb5.c b/source4/auth/gensec/gensec_krb5.c index 4756c8482d2..fdd3823f4f6 100644 --- a/source4/auth/gensec/gensec_krb5.c +++ b/source4/auth/gensec/gensec_krb5.c @@ -1086,14 +1086,14 @@ _PUBLIC_ NTSTATUS gensec_krb5_init(TALLOC_CTX *ctx) { NTSTATUS ret; - ret = gensec_register(&gensec_krb5_security_ops); + ret = gensec_register(ctx, &gensec_krb5_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_krb5_security_ops.name)); return ret; } - ret = gensec_register(&gensec_fake_gssapi_krb5_security_ops); + ret = gensec_register(ctx, &gensec_fake_gssapi_krb5_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_fake_gssapi_krb5_security_ops.name)); diff --git a/source4/lib/http/gensec/basic.c b/source4/lib/http/gensec/basic.c index 64778638b66..6077aca7671 100644 --- a/source4/lib/http/gensec/basic.c +++ b/source4/lib/http/gensec/basic.c @@ -127,7 +127,7 @@ _PUBLIC_ NTSTATUS gensec_http_basic_init(TALLOC_CTX *ctx) { NTSTATUS status; - status = gensec_register(&gensec_http_basic_security_ops); + status = gensec_register(ctx, &gensec_http_basic_security_ops); if (!NT_STATUS_IS_OK(status)) { DEBUG(0, ("Failed to register '%s' gensec backend!\n", gensec_http_basic_security_ops.name)); diff --git a/source4/lib/http/gensec/ntlm.c b/source4/lib/http/gensec/ntlm.c index 391f99fef0f..cc4b0f0de81 100644 --- a/source4/lib/http/gensec/ntlm.c +++ b/source4/lib/http/gensec/ntlm.c @@ -110,7 +110,7 @@ _PUBLIC_ NTSTATUS gensec_http_ntlm_init(TALLOC_CTX *ctx) { NTSTATUS status; - status = gensec_register(&gensec_http_ntlm_security_ops); + status = gensec_register(ctx, &gensec_http_ntlm_security_ops); if (!NT_STATUS_IS_OK(status)) { DEBUG(0, ("Failed to register '%s' gensec backend!\n", gensec_http_ntlm_security_ops.name));