svn commit: lorikeet r455 - in trunk/heimdal/lib/krb5: .
abartlet at samba.org
abartlet at samba.org
Wed Sep 7 22:04:11 GMT 2005
Author: abartlet
Date: 2005-09-07 22:04:11 +0000 (Wed, 07 Sep 2005)
New Revision: 455
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=lorikeet&rev=455
Log:
Don't modify the returned keyblock unless we succeed.
Andrew Bartlett
Modified:
trunk/heimdal/lib/krb5/rd_req.c
Changeset:
Modified: trunk/heimdal/lib/krb5/rd_req.c
===================================================================
--- trunk/heimdal/lib/krb5/rd_req.c 2005-09-05 10:50:15 UTC (rev 454)
+++ trunk/heimdal/lib/krb5/rd_req.c 2005-09-07 22:04:11 UTC (rev 455)
@@ -565,6 +565,7 @@
krb5_error_code ret;
krb5_ap_req ap_req;
krb5_principal service = NULL;
+ krb5_keyblock *local_keyblock;
if (*auth_context == NULL) {
ret = krb5_auth_con_init(context, auth_context);
@@ -596,13 +597,13 @@
&ap_req,
server,
keytab,
- keyblock);
+ &local_keyblock);
if(ret)
goto out;
} else {
ret = krb5_copy_keyblock(context,
(*auth_context)->keyblock,
- keyblock);
+ &local_keyblock);
if (ret)
goto out;
}
@@ -611,17 +612,20 @@
auth_context,
&ap_req,
server,
- *keyblock,
+ local_keyblock,
0,
ap_req_options,
ticket);
+ if (ret) {
+ krb5_free_keyblock(context, local_keyblock);
+ } else {
+ *keyblock = local_keyblock;
+ }
out:
free_AP_REQ(&ap_req);
if(service)
krb5_free_principal(context, service);
- if (ret)
- krb5_free_keyblock(context, *keyblock);
return ret;
}
More information about the samba-cvs
mailing list