summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobbie Harwood <rharwood@redhat.com>2015-11-16 16:58:14 -0500
committerSimo Sorce <simo@redhat.com>2015-11-19 16:08:01 -0500
commit2fbe920fee0c2ab6836b17bdac84fc5f5ebc49b4 (patch)
tree4f01bc41e1ae0503343c58821d1d585a64bb5d24
parent0ad90967eb23066c1e346579f7476ed3c9d0582d (diff)
downloadgss-proxy-2fbe920fee0c2ab6836b17bdac84fc5f5ebc49b4.tar.gz
gss-proxy-2fbe920fee0c2ab6836b17bdac84fc5f5ebc49b4.tar.xz
gss-proxy-2fbe920fee0c2ab6836b17bdac84fc5f5ebc49b4.zip
Fix several leaks
Signed-off-by: Robbie Harwood <rharwood@redhat.com> Reviewed-by: Simo Sorce <simo@redhat.com>
-rw-r--r--proxy/src/gp_config.c4
-rw-r--r--proxy/src/gp_conv.c1
-rw-r--r--proxy/src/gp_creds.c1
-rw-r--r--proxy/src/gp_rpc_init_sec_context.c1
-rw-r--r--proxy/src/gssproxy.c1
5 files changed, 8 insertions, 0 deletions
diff --git a/proxy/src/gp_config.c b/proxy/src/gp_config.c
index f5a3fab..64c790f 100644
--- a/proxy/src/gp_config.c
+++ b/proxy/src/gp_config.c
@@ -605,6 +605,7 @@ void free_config(struct gp_config **cfg)
}
free(config->config_file);
+ free(config->config_dir);
free(config->socket_name);
free(config->proxy_user);
@@ -720,6 +721,9 @@ static int gp_config_from_dir(const char *config_dir,
ini_config_destroy(*ini_config);
*ini_config = result_cfg;
}
+ if (error_list) {
+ ref_array_destroy(error_list);
+ }
return 0;
}
diff --git a/proxy/src/gp_conv.c b/proxy/src/gp_conv.c
index 7711aff..6aa66a8 100644
--- a/proxy/src/gp_conv.c
+++ b/proxy/src/gp_conv.c
@@ -483,6 +483,7 @@ uint32_t gp_conv_gssx_to_name(uint32_t *min, gssx_name *in, gss_name_t *out)
done:
*min = ret_min;
gss_release_buffer(&ret_min, input_name);
+ free(input_name);
gss_release_oid(&ret_min, &name_type);
return ret_maj;
}
diff --git a/proxy/src/gp_creds.c b/proxy/src/gp_creds.c
index 2bf3851..88a0dab 100644
--- a/proxy/src/gp_creds.c
+++ b/proxy/src/gp_creds.c
@@ -522,6 +522,7 @@ done:
gss_release_oid_set(&discard, actual_mechs);
}
}
+ free_cred_store_elements(&cred_store);
gss_release_cred(&discard, &impersonator_cred);
gss_release_cred(&discard, &user_cred);
gss_release_name(&discard, &target_name);
diff --git a/proxy/src/gp_rpc_init_sec_context.c b/proxy/src/gp_rpc_init_sec_context.c
index 8a5b7b0..f006374 100644
--- a/proxy/src/gp_rpc_init_sec_context.c
+++ b/proxy/src/gp_rpc_init_sec_context.c
@@ -162,5 +162,6 @@ done:
gss_release_name(&ret_min, &target_name);
gss_release_oid(&ret_min, &mech_type);
gss_release_cred(&ret_min, &ich);
+ gss_release_buffer(&ret_min, &obuf);
return ret;
}
diff --git a/proxy/src/gssproxy.c b/proxy/src/gssproxy.c
index 3067fb4..1e99f88 100644
--- a/proxy/src/gssproxy.c
+++ b/proxy/src/gssproxy.c
@@ -257,6 +257,7 @@ int main(int argc, const char *argv[])
}
verto_run(vctx);
+ verto_free(vctx);
gp_workers_free(gpctx->workers);