From cdc64c448df49676c96f87d106af8de0c467651f Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 24 May 2006 07:32:17 +0000 Subject: r15853: started the process of removing the warnings now that talloc_set_destructor() is type safe. The end result will be lots less use of void*, and less calls to talloc_get_type() (This used to be commit 6b4c085b862c0932b80b93e316396a53b993544c) --- source4/auth/credentials/credentials_krb5.c | 14 ++++++-------- source4/auth/gensec/gensec_gssapi.c | 3 +-- source4/auth/gensec/gensec_krb5.c | 4 +--- source4/auth/kerberos/kerberos_util.c | 12 ++++++------ source4/auth/kerberos/krb5_init_context.c | 9 +++------ source4/gtk/common/gtk_events.c | 10 ++++------ source4/kdc/hdb-ldb.c | 3 +-- source4/lib/db_wrap.c | 3 +-- 8 files changed, 23 insertions(+), 35 deletions(-) diff --git a/source4/auth/credentials/credentials_krb5.c b/source4/auth/credentials/credentials_krb5.c index 29b70d9a53..7d53caddfa 100644 --- a/source4/auth/credentials/credentials_krb5.c +++ b/source4/auth/credentials/credentials_krb5.c @@ -104,16 +104,15 @@ int cli_credentials_set_from_ccache(struct cli_credentials *cred, } /* Free a memory ccache */ -static int free_mccache(void *ptr) { - struct ccache_container *ccc = ptr; +static int free_mccache(struct ccache_container *ccc) +{ krb5_cc_destroy(ccc->smb_krb5_context->krb5_context, ccc->ccache); return 0; } /* Free a disk-based ccache */ -static int free_dccache(void *ptr) { - struct ccache_container *ccc = ptr; +static int free_dccache(struct ccache_container *ccc) { krb5_cc_close(ccc->smb_krb5_context->krb5_context, ccc->ccache); return 0; @@ -273,11 +272,10 @@ int cli_credentials_get_ccache(struct cli_credentials *cred, return ret; } -static int free_gssapi_creds(void *ptr) { +static int free_gssapi_creds(struct gssapi_creds_container *gcc) +{ OM_uint32 min_stat, maj_stat; - struct gssapi_creds_container *gcc = ptr; - maj_stat = gss_release_cred(&min_stat, - &gcc->creds); + maj_stat = gss_release_cred(&min_stat, &gcc->creds); return 0; } diff --git a/source4/auth/gensec/gensec_gssapi.c b/source4/auth/gensec/gensec_gssapi.c index 070e83e97c..270ae37703 100644 --- a/source4/auth/gensec/gensec_gssapi.c +++ b/source4/auth/gensec/gensec_gssapi.c @@ -95,9 +95,8 @@ static char *gssapi_error_string(TALLOC_CTX *mem_ctx, } -static int gensec_gssapi_destory(void *ptr) +static int gensec_gssapi_destory(struct gensec_gssapi_state *gensec_gssapi_state) { - struct gensec_gssapi_state *gensec_gssapi_state = ptr; OM_uint32 maj_stat, min_stat; if (gensec_gssapi_state->delegated_cred_handle != GSS_C_NO_CREDENTIAL) { diff --git a/source4/auth/gensec/gensec_krb5.c b/source4/auth/gensec/gensec_krb5.c index abb46ab7f7..918950302e 100644 --- a/source4/auth/gensec/gensec_krb5.c +++ b/source4/auth/gensec/gensec_krb5.c @@ -54,10 +54,8 @@ struct gensec_krb5_state { BOOL gssapi; }; -static int gensec_krb5_destroy(void *ptr) +static int gensec_krb5_destroy(struct gensec_krb5_state *gensec_krb5_state) { - struct gensec_krb5_state *gensec_krb5_state = ptr; - if (!gensec_krb5_state->smb_krb5_context) { /* We can't clean anything else up unless we started up this far */ return 0; diff --git a/source4/auth/kerberos/kerberos_util.c b/source4/auth/kerberos/kerberos_util.c index 113f41a35f..413bef822b 100644 --- a/source4/auth/kerberos/kerberos_util.c +++ b/source4/auth/kerberos/kerberos_util.c @@ -31,8 +31,8 @@ struct principal_container { krb5_principal principal; }; -static int free_principal(void *ptr) { - struct principal_container *pc = ptr; +static int free_principal(struct principal_container *pc) +{ /* current heimdal - 0.6.3, which we need anyway, fixes segfaults here */ krb5_free_principal(pc->smb_krb5_context->krb5_context, pc->principal); @@ -227,8 +227,8 @@ krb5_error_code principal_from_credentials(TALLOC_CTX *parent_ctx, return 0; } -static int free_keytab(void *ptr) { - struct keytab_container *ktc = ptr; +static int free_keytab(struct keytab_container *ktc) +{ krb5_kt_close(ktc->smb_krb5_context->krb5_context, ktc->keytab); return 0; @@ -265,8 +265,8 @@ struct enctypes_container { krb5_enctype *enctypes; }; -static int free_enctypes(void *ptr) { - struct enctypes_container *etc = ptr; +static int free_enctypes(struct enctypes_container *etc) +{ free_kerberos_etypes(etc->smb_krb5_context->krb5_context, etc->enctypes); return 0; } diff --git a/source4/auth/kerberos/krb5_init_context.c b/source4/auth/kerberos/krb5_init_context.c index aefa8fbfbc..fa2975a647 100644 --- a/source4/auth/kerberos/krb5_init_context.c +++ b/source4/auth/kerberos/krb5_init_context.c @@ -47,21 +47,18 @@ struct smb_krb5_socket { krb5_krbhst_info *hi; }; -static int smb_krb5_context_destroy_1(void *ptr) +static int smb_krb5_context_destroy_1(struct smb_krb5_context *ctx) { - struct smb_krb5_context *ctx = ptr; krb5_free_context(ctx->krb5_context); return 0; } -static int smb_krb5_context_destroy_2(void *ptr) +static int smb_krb5_context_destroy_2(struct smb_krb5_context *ctx) { - struct smb_krb5_context *ctx = ptr; - /* Otherwise krb5_free_context will try and close what we have already free()ed */ krb5_set_warn_dest(ctx->krb5_context, NULL); krb5_closelog(ctx->krb5_context, ctx->logf); - smb_krb5_context_destroy_1(ptr); + smb_krb5_context_destroy_1(ctx); return 0; } diff --git a/source4/gtk/common/gtk_events.c b/source4/gtk/common/gtk_events.c index 9a0af5fdeb..67467b87a7 100644 --- a/source4/gtk/common/gtk_events.c +++ b/source4/gtk/common/gtk_events.c @@ -34,7 +34,7 @@ */ static struct event_context *gtk_event_context_global; -static int gtk_event_context_destructor(void *ptr) +static int gtk_event_context_destructor(struct event_context *ev) { gtk_event_context_global = NULL; return 0; @@ -83,9 +83,8 @@ static gboolean gtk_event_fd_handler(GIOChannel *source, GIOCondition condition, /* destroy an fd_event */ -static int gtk_event_fd_destructor(void *ptr) +static int gtk_event_fd_destructor(struct fd_event *fde) { - struct fd_event *fde = talloc_get_type(ptr, struct fd_event); struct gtk_fd_event *gtk_fd = talloc_get_type(fde->additional_data, struct gtk_fd_event); @@ -212,9 +211,8 @@ struct gtk_timed_event { /* destroy a timed event */ -static int gtk_event_timed_destructor(void *ptr) +static int gtk_event_timed_destructor(struct timed_event *te) { - struct timed_event *te = talloc_get_type(ptr, struct timed_event); struct gtk_timed_event *gtk_te = talloc_get_type(te->additional_data, struct gtk_timed_event); @@ -223,7 +221,7 @@ static int gtk_event_timed_destructor(void *ptr) return 0; } -static int gtk_event_timed_deny_destructor(void *ptr) +static int gtk_event_timed_deny_destructor(struct timed_event *te) { return -1; } diff --git a/source4/kdc/hdb-ldb.c b/source4/kdc/hdb-ldb.c index cc354af9e9..518ef7c01c 100644 --- a/source4/kdc/hdb-ldb.c +++ b/source4/kdc/hdb-ldb.c @@ -198,9 +198,8 @@ static HDBFlags uf2HDBFlags(krb5_context context, int userAccountControl, enum h return flags; } -static int hdb_ldb_destrutor(void *ptr) +static int hdb_ldb_destrutor(struct hdb_ldb_private *private) { - struct hdb_ldb_private *private = ptr; hdb_entry_ex *entry_ex = private->entry_ex; free_hdb_entry(&entry_ex->entry); return 0; diff --git a/source4/lib/db_wrap.c b/source4/lib/db_wrap.c index 9ff4301fdb..43ad3d0fae 100644 --- a/source4/lib/db_wrap.c +++ b/source4/lib/db_wrap.c @@ -166,9 +166,8 @@ static void tdb_wrap_log(TDB_CONTEXT *tdb, int level, /* destroy the last connection to a tdb */ -static int tdb_wrap_destructor(void *ctx) +static int tdb_wrap_destructor(struct tdb_wrap *w) { - struct tdb_wrap *w = ctx; tdb_close(w->tdb); DLIST_REMOVE(tdb_list, w); return 0; -- cgit