summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2003-06-13 21:45:30 +0000
committerTom Yu <tlyu@mit.edu>2003-06-13 21:45:30 +0000
commitfe1a9f94914b6a4c9c56e4f0770e210183530e3f (patch)
tree56d883945886cef67b54759a53b5b8362ee4f994 /src
parent56d733f6d69e145693258b5e10a02554e4e68f77 (diff)
downloadkrb5-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/ChangeLog5
-rw-r--r--src/lib/krb5/krb/rd_rep.c8
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) {