diff options
| author | Nicolas Clapies <nclapies@entrouvert.com> | 2004-09-27 13:49:12 +0000 |
|---|---|---|
| committer | Nicolas Clapies <nclapies@entrouvert.com> | 2004-09-27 13:49:12 +0000 |
| commit | f59ffa88ac4596df962757a9df1ed5b22bc6b1df (patch) | |
| tree | 8d42708696bd5e1759689e96108c8f4517c6a09f | |
| parent | 75ae196125a102836645d5d82425da866e87c6f9 (diff) | |
| download | lasso-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.c | 9 |
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); } |
