summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-09-27 13:49:12 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-09-27 13:49:12 +0000
commitf59ffa88ac4596df962757a9df1ed5b22bc6b1df (patch)
tree8d42708696bd5e1759689e96108c8f4517c6a09f
parent75ae196125a102836645d5d82425da866e87c6f9 (diff)
downloadlasso-f59ffa88ac4596df962757a9df1ed5b22bc6b1df.tar.gz
lasso-f59ffa88ac4596df962757a9df1ed5b22bc6b1df.tar.xz
lasso-f59ffa88ac4596df962757a9df1ed5b22bc6b1df.zip
Fixed bug #293 : memory leak on content local variable in lasso_logout_init_request().
-rw-r--r--lasso/id-ff/logout.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/lasso/id-ff/logout.c b/lasso/id-ff/logout.c
index 8cf2e277..7f558866 100644
--- a/lasso/id-ff/logout.c
+++ b/lasso/id-ff/logout.c
@@ -467,7 +467,8 @@ lasso_logout_init_request(LassoLogout *logout,
goto done;
}
- /* get name identifier attributes */
+ /* Get name identifier attributes */
+ /* WARNING : Don't free content, it will be backed up in nameIdentifier attribute of LassoDefederation object */
content = lasso_node_get_content(nameIdentifier, NULL);
nameQualifier = lasso_node_get_attr_value(nameIdentifier, "NameQualifier", NULL);
format = lasso_node_get_attr_value(nameIdentifier, "Format", NULL);
@@ -536,8 +537,9 @@ lasso_logout_init_request(LassoLogout *logout,
goto done;
}
- /* set the name identifier in logout object */
+ /* Set the name identifier attribute with content local variable */
profile->nameIdentifier = content;
+ content = NULL;
/* if logout request from a SP and if an HTTP Redirect / GET method, then remove assertion */
if (profile->provider_type == lassoProviderTypeSp && is_http_redirect_get_method == TRUE) {
@@ -551,6 +553,9 @@ lasso_logout_init_request(LassoLogout *logout,
if (nameIdentifier != NULL ) {
lasso_node_destroy(nameIdentifier);
}
+ if (content != NULL) {
+ xmlFree(content);
+ }
if (nameQualifier != NULL) {
xmlFree(nameQualifier);
}