diff options
author | Tom Yu <tlyu@mit.edu> | 2003-06-13 21:45:30 +0000 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2003-06-13 21:45:30 +0000 |
commit | fe1a9f94914b6a4c9c56e4f0770e210183530e3f (patch) | |
tree | 56d883945886cef67b54759a53b5b8362ee4f994 /src | |
parent | 56d733f6d69e145693258b5e10a02554e4e68f77 (diff) | |
download | krb5-fe1a9f94914b6a4c9c56e4f0770e210183530e3f.tar.gz krb5-fe1a9f94914b6a4c9c56e4f0770e210183530e3f.tar.xz krb5-fe1a9f94914b6a4c9c56e4f0770e210183530e3f.zip |
krb5_rd_rep leaks subkeys
* rd_rep.c (krb5_rd_rep): Free subkeys before replacing them, if
needed. This avoids a memory leak.
ticket: new
target_version: 1.3
component: krb5-libs
tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15620 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/krb5/krb/ChangeLog | 5 | ||||
-rw-r--r-- | src/lib/krb5/krb/rd_rep.c | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/krb5/krb/ChangeLog b/src/lib/krb5/krb/ChangeLog index 3b5287f0c4..b7aab3c0d2 100644 --- a/src/lib/krb5/krb/ChangeLog +++ b/src/lib/krb5/krb/ChangeLog @@ -1,3 +1,8 @@ +2003-06-13 Tom Yu <tlyu@mit.edu> + + * rd_rep.c (krb5_rd_rep): Free subkeys before replacing them, if + needed. This avoids a memory leak. + 2003-06-11 Tom Yu <tlyu@mit.edu> * srv_rcache.c (krb5_get_server_rcache): Octal escapes begin with diff --git a/src/lib/krb5/krb/rd_rep.c b/src/lib/krb5/krb/rd_rep.c index 50ce51331e..80192294e8 100644 --- a/src/lib/krb5/krb/rd_rep.c +++ b/src/lib/krb5/krb/rd_rep.c @@ -81,10 +81,18 @@ krb5_rd_rep(krb5_context context, krb5_auth_context auth_context, const krb5_dat /* Set auth subkey */ if ((*repl)->subkey) { + if (auth_context->recv_subkey) { + krb5_free_keyblock(context, auth_context->recv_subkey); + auth_context->recv_subkey = NULL; + } retval = krb5_copy_keyblock(context, (*repl)->subkey, &auth_context->recv_subkey); if (retval) goto clean_scratch; + if (auth_context->send_subkey) { + krb5_free_keyblock(context, auth_context->send_subkey); + auth_context->send_subkey = NULL; + } retval = krb5_copy_keyblock(context, (*repl)->subkey, &auth_context->send_subkey); if (retval) { |