From 4f6c5f7d37d741e8ba77e757fcf177e11c5e21bc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ale=C5=A1=20K=C5=99enek?= Date: Fri, 30 Sep 2005 11:18:16 +0000 Subject: [PATCH] register plugin with gsoap _after_ GSS accept is OK (prevent access to free()d data) --- org.glite.jp.primary/src/bones_server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/org.glite.jp.primary/src/bones_server.c b/org.glite.jp.primary/src/bones_server.c index 5cb2367..5ddcd32 100644 --- a/org.glite.jp.primary/src/bones_server.c +++ b/org.glite.jp.primary/src/bones_server.c @@ -200,7 +200,6 @@ static int newconn(int conn,struct timeval *to,void *data) glite_gsplugin_init_context(&plugin_ctx); plugin_ctx->connection = calloc(1,sizeof *plugin_ctx->connection); - soap_register_plugin_arg(soap,glite_gsplugin,plugin_ctx); switch (edg_wll_gss_watch_creds(server_cert,&cert_mtime)) { case 0: break; @@ -248,10 +247,11 @@ static int newconn(int conn,struct timeval *to,void *data) if (client_name != GSS_C_NO_NAME) gss_release_name(&min_stat, &client_name); if (token.value) gss_release_buffer(&min_stat, &token); + soap_register_plugin_arg(soap,glite_gsplugin,plugin_ctx); return 0; cleanup: - glite_gsplugin_free_context(plugin_ctx); + glite_gsplugin_free_context(plugin_ctx); plugin_ctx = NULL; soap_end(soap); return ret; -- 1.8.2.3