From 725d5d3b4bcc5b92e2c2fe080390e80313b98015 Mon Sep 17 00:00:00 2001 From: Alexander Scheel Date: Aug 08 2017 18:16:31 +0000 Subject: [PATCH 1/2] Don't leak mech_type when CONTINUE_NEEDED from init_sec_context Signed-off-by: Alexander Scheel --- diff --git a/proxy/src/gp_export.c b/proxy/src/gp_export.c index ab08bb7..2e3dd07 100644 --- a/proxy/src/gp_export.c +++ b/proxy/src/gp_export.c @@ -686,6 +686,7 @@ export: case EXP_CTX_PARTIAL: /* this happens only when a init_sec_context call returns a partially * initialized context so we return only what we have, not much */ + xdr_free((xdrproc_t)xdr_gssx_OID, (char *)&out->mech); ret = gp_conv_oid_to_gssx(mech, &out->mech); if (ret) { ret_maj = GSS_S_FAILURE; From fd6f932620cc9d67557c7ebea39da49d4ec55ca3 Mon Sep 17 00:00:00 2001 From: Alexander Scheel Date: Aug 08 2017 20:44:07 +0000 Subject: [PATCH 2/2] Add call to verto_cleanup() Signed-off-by: Alexander Scheel --- diff --git a/proxy/configure.ac b/proxy/configure.ac index bc73dd9..81323ee 100644 --- a/proxy/configure.ac +++ b/proxy/configure.ac @@ -82,6 +82,12 @@ if test x$have_libverto = x; then AC_MSG_ERROR([Could not find VERTO headers]) fi +AC_CHECK_LIB(verto, verto_free,, + AC_MSG_ERROR(["Error: libverto is not found or lacks verto_free"])) + +AC_CHECK_FUNCS(verto_cleanup,, + AC_MSG_WARN(["Warning: libverto lacks verto_cleanup function"])) + #Check for libini_config PKG_CHECK_MODULES([LIBINI_CONFIG], [ini_config >= 1.2.0], [have_libini_config=1], [have_libini_config=]) if test x$have_libini_config = x; then diff --git a/proxy/src/gssproxy.c b/proxy/src/gssproxy.c index 5fc4f8d..9813fb8 100644 --- a/proxy/src/gssproxy.c +++ b/proxy/src/gssproxy.c @@ -300,5 +300,9 @@ cleanup: free(opt_config_dir); free(opt_config_socket); +#ifdef HAVE_VERTO_CLEANUP + verto_cleanup(); +#endif + return ret; }