diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/krb4/ChangeLog | 6 | ||||
| -rw-r--r-- | src/lib/krb4/rd_svc_key.c | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/lib/krb4/ChangeLog b/src/lib/krb4/ChangeLog index 0134656df..54e185d2e 100644 --- a/src/lib/krb4/ChangeLog +++ b/src/lib/krb4/ChangeLog @@ -1,3 +1,9 @@ +Mon Aug 10 17:51:59 1998 Matthew D Hancher <mdh@mit.edu> + + * rd_svc_key.c (read_service_key): Don't call krb5_kt_close() if + krb5_kt_resolve() fails, so we don't segfault if the keytab name + is invalid. + Fri Aug 7 11:04:03 1998 Tom Yu <tlyu@mit.edu> * rd_safe.c (krb_rd_safe): Fix up call to quad_cksum(). diff --git a/src/lib/krb4/rd_svc_key.c b/src/lib/krb4/rd_svc_key.c index 5ef12d8eb..34924baf5 100644 --- a/src/lib/krb4/rd_svc_key.c +++ b/src/lib/krb4/rd_svc_key.c @@ -166,10 +166,11 @@ read_service_key(service,instance,realm,kvno,file,key) sizeof(keytabname)-1); if (!retval) { retval = krb5_kt_resolve(context, (char *)keytabname, &kt_id); - if (!retval) + if (!retval) { retval = krb5_kt_get_entry(context, kt_id, princ, kvno, ENCTYPE_DES_CBC_CRC, &kt_entry); - krb5_kt_close(context, kt_id); + krb5_kt_close(context, kt_id); + } krb5_free_principal(context, princ); } if (!retval) { |
