summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Laniel <dlaniel@entrouvert.com>2006-11-09 14:39:39 +0000
committerDamien Laniel <dlaniel@entrouvert.com>2006-11-09 14:39:39 +0000
commit40a577ac464b3eda720ba934f2a02116fa526bc3 (patch)
treeacd0d8708e1081edf9e18ab6a44cbb949277f4c2
parent15e4f5436d53e90e7987b0df94a2155d13c2f06a (diff)
downloadlasso-40a577ac464b3eda720ba934f2a02116fa526bc3.tar.gz
lasso-40a577ac464b3eda720ba934f2a02116fa526bc3.tar.xz
lasso-40a577ac464b3eda720ba934f2a02116fa526bc3.zip
Fix a possible memory leak in lasso_server_set_encryption_private_key and add a comment
-rw-r--r--lasso/id-ff/server.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/lasso/id-ff/server.c b/lasso/id-ff/server.c
index 6676cb50..bbf332ac 100644
--- a/lasso/id-ff/server.c
+++ b/lasso/id-ff/server.c
@@ -122,12 +122,25 @@ lasso_server_destroy(LassoServer *server)
lasso_node_destroy(LASSO_NODE(server));
}
+
+/**
+ * lasso_server_set_encryption_private_key:
+ * @server: a #LassoServer
+ * @file_name: file name of the encryption key to load
+ *
+ * Load an encryption private key from a file and set it in the server object
+ *
+ * Return value: 0 on success; another value if an error occured.
+ **/
int
lasso_server_set_encryption_private_key(LassoServer *server, gchar *file_name)
{
LassoPemFileType file_type;
- server->private_data->encryption_private_key = NULL;
+ if (server->private_data->encryption_private_key != NULL) {
+ g_free(server->private_data->encryption_private_key);
+ server->private_data->encryption_private_key = NULL;
+ }
file_type = lasso_get_pem_file_type(file_name);
if (file_type == LASSO_PEM_FILE_TYPE_PRIVATE_KEY) {
server->private_data->encryption_private_key = xmlSecCryptoAppKeyLoad(file_name,