diff options
author | Alejandro Perez <alex@um.es> | 2017-02-11 11:44:39 +0000 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2017-02-13 05:38:23 -0500 |
commit | cfb4b771af19d46d89b2a0104c70ad29e9e38c8c (patch) | |
tree | 3e99c6cb4997f2d52eb9c87196633a8ddc0fa99d | |
parent | 9bd84625838b82a789fc291d85460ab2878093d6 (diff) | |
download | mod_auth_gssapi-cfb4b771af19d46d89b2a0104c70ad29e9e38c8c.tar.gz mod_auth_gssapi-cfb4b771af19d46d89b2a0104c70ad29e9e38c8c.tar.xz mod_auth_gssapi-cfb4b771af19d46d89b2a0104c70ad29e9e38c8c.zip |
Reviewed-by: Simo Sorce <simo@redhat.com>
Closes #127
-rw-r--r-- | src/environ.c | 10 | ||||
-rw-r--r-- | src/mod_auth_gssapi.c | 2 | ||||
-rw-r--r-- | src/mod_auth_gssapi.h | 1 |
3 files changed, 11 insertions, 2 deletions
diff --git a/src/environ.c b/src/environ.c index e3a021a..840ccd2 100644 --- a/src/environ.c +++ b/src/environ.c @@ -35,6 +35,14 @@ static bool mag_get_name_attr(request_rec *req, return true; } +static apr_status_t mag_mc_name_attrs_cleanup(void *data) +{ + struct mag_conn *mc = (struct mag_conn *)data; + free(mc->name_attributes); + mc->name_attributes = NULL; + return 0; +} + static void mc_add_name_attribute(struct mag_conn *mc, const char *name, const char *value) { @@ -44,6 +52,8 @@ static void mc_add_name_attribute(struct mag_conn *mc, size = sizeof(struct mag_attr) * (mc->na_count + 16); mc->name_attributes = realloc(mc->name_attributes, size); if (!mc->name_attributes) apr_pool_abort_get(mc->pool)(ENOMEM); + apr_pool_userdata_setn(mc, GSS_NAME_ATTR_USERDATA, + mag_mc_name_attrs_cleanup, mc->pool); } mc->name_attributes[mc->na_count].name = apr_pstrdup(mc->pool, name); diff --git a/src/mod_auth_gssapi.c b/src/mod_auth_gssapi.c index 91c8f68..8226ecc 100644 --- a/src/mod_auth_gssapi.c +++ b/src/mod_auth_gssapi.c @@ -1601,8 +1601,6 @@ static const char *mag_negotiate_once(cmd_parms *parms, void *mconfig, int on) return NULL; } -#define GSS_NAME_ATTR_USERDATA "GSS Name Attributes Userdata" - static apr_status_t mag_name_attrs_cleanup(void *data) { struct mag_config *cfg = (struct mag_config *)data; diff --git a/src/mod_auth_gssapi.h b/src/mod_auth_gssapi.h index fb47b12..14bc10b 100644 --- a/src/mod_auth_gssapi.h +++ b/src/mod_auth_gssapi.h @@ -53,6 +53,7 @@ #endif extern module AP_MODULE_DECLARE_DATA auth_gssapi_module; +#define GSS_NAME_ATTR_USERDATA "GSS Name Attributes Userdata" struct mag_na_map { char *env_name; |