diff options
author | Alexandra Ellwood <lxs@mit.edu> | 2008-10-21 21:52:29 +0000 |
---|---|---|
committer | Alexandra Ellwood <lxs@mit.edu> | 2008-10-21 21:52:29 +0000 |
commit | 11352a10b4a50e02c2410dd2245bd52aec47afaf (patch) | |
tree | da74b40480e5f8962ba2b0e6c30e51578e935532 | |
parent | 4c67c4890093207155082610ba182ec32a28dde1 (diff) | |
download | krb5-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
-rw-r--r-- | src/kim/lib/kim_preferences.c | 10 |
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) { |