summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlexandra Ellwood <lxs@mit.edu>2008-10-21 21:52:29 +0000
committerAlexandra Ellwood <lxs@mit.edu>2008-10-21 21:52:29 +0000
commit11352a10b4a50e02c2410dd2245bd52aec47afaf (patch)
treeda74b40480e5f8962ba2b0e6c30e51578e935532 /src
parent4c67c4890093207155082610ba182ec32a28dde1 (diff)
downloadkrb5-11352a10b4a50e02c2410dd2245bd52aec47afaf.tar.gz
krb5-11352a10b4a50e02c2410dd2245bd52aec47afaf.tar.xz
krb5-11352a10b4a50e02c2410dd2245bd52aec47afaf.zip
kim_preferences should free old identity before overwriting
ticket: new git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20904 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/kim/lib/kim_preferences.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/kim/lib/kim_preferences.c b/src/kim/lib/kim_preferences.c
index d63a6141d..a9bd6ce55 100644
--- a/src/kim/lib/kim_preferences.c
+++ b/src/kim/lib/kim_preferences.c
@@ -437,16 +437,24 @@ static kim_error kim_preferences_read (kim_preferences in_preferences)
if (!err) {
kim_identity default_identity = kim_default_client_identity;
+ kim_identity identity = NULL;
err = kim_os_identity_create_for_username (&default_identity);
if (!err) {
err = kim_os_preferences_get_identity_for_key (kim_preference_key_client_identity,
default_identity,
- &in_preferences->client_identity);
+ &identity);
+ }
+
+ if (!err) {
+ kim_identity_free (&in_preferences->client_identity);
+ in_preferences->client_identity = identity;
+ identity = NULL;
}
kim_identity_free (&default_identity);
+ kim_identity_free (&identity);
}
if (!err) {