aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5/krb/walk_rtree.c
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2007-06-18 21:07:37 +0000
committerTom Yu <tlyu@mit.edu>2007-06-18 21:07:37 +0000
commit073cf9a9bcbe0f194990fcf199bad688f161a6c7 (patch)
treeeff9cac4e645de6d0ce2c6d2cf6420a781094965 /src/lib/krb5/krb/walk_rtree.c
parentb7895cf55e58fe12f7b33dcf8558daaff316df5e (diff)
downloadkrb5-073cf9a9bcbe0f194990fcf199bad688f161a6c7.zip
krb5-073cf9a9bcbe0f194990fcf199bad688f161a6c7.tar.gz
krb5-073cf9a9bcbe0f194990fcf199bad688f161a6c7.tar.bz2
krb5_walk_realm_tree leaks in capaths case
Markus Moeller reports a leak in krb5_get_credentials() which was then traced down to profile strings leaking from within krb5_walk_realm_tree(). A pointer to a profile string was getting overwritten without the string being freed when *cap_nodes[0] == '.'. Fix is to free the string prior to overwriting the pointer if the pointer is non-null. ticket: new target_version: 1.6.2 tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19582 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/walk_rtree.c')
-rw-r--r--src/lib/krb5/krb/walk_rtree.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/krb5/krb/walk_rtree.c b/src/lib/krb5/krb/walk_rtree.c
index 7210be7..c4673ca 100644
--- a/src/lib/krb5/krb/walk_rtree.c
+++ b/src/lib/krb5/krb/walk_rtree.c
@@ -167,6 +167,9 @@ krb5_walk_realm_tree(krb5_context context, const krb5_data *client, const krb5_d
links++;
}
}
+ if (cap_nodes[links] != NULL)
+ krb5_xfree(cap_nodes[links]);
+
cap_nodes[links] = cap_server; /* put server on end of list */
/* this simplifies the code later and make */
/* cleanup eaiser as well */