(tgs_rep2): alloc and free csec and cusec properly
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9996 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1355,6 +1355,9 @@ tgs_rep2(KDC_REQ_BODY *b,
|
||||
krb5_principal sp = NULL;
|
||||
AuthorizationData *auth_data = NULL;
|
||||
|
||||
*csec = NULL;
|
||||
*cusec = NULL;
|
||||
|
||||
memset(&ap_req, 0, sizeof(ap_req));
|
||||
ret = krb5_decode_ap_req(context, &tgs_req->padata_value, &ap_req);
|
||||
if(ret){
|
||||
@@ -1437,8 +1440,20 @@ tgs_rep2(KDC_REQ_BODY *b,
|
||||
|
||||
ret = krb5_auth_getauthenticator(context, ac, &auth);
|
||||
if (ret == 0) {
|
||||
*csec = &auth->ctime;
|
||||
*cusec = &auth->cusec;
|
||||
*csec = malloc(sizeof(**csec));
|
||||
if (*csec == NULL) {
|
||||
krb5_free_authenticator(context, &auth);
|
||||
kdc_log(0, "malloc failed");
|
||||
goto out2;
|
||||
}
|
||||
**csec = auth->ctime;
|
||||
*cusec = malloc(sizeof(**cusec));
|
||||
if (*cusec == NULL) {
|
||||
krb5_free_authenticator(context, &auth);
|
||||
kdc_log(0, "malloc failed");
|
||||
goto out2;
|
||||
}
|
||||
**csec = auth->cusec;
|
||||
krb5_free_authenticator(context, &auth);
|
||||
}
|
||||
}
|
||||
@@ -1676,7 +1691,7 @@ tgs_rep2(KDC_REQ_BODY *b,
|
||||
free_ent(client);
|
||||
}
|
||||
out2:
|
||||
if(ret)
|
||||
if(ret) {
|
||||
krb5_mk_error(context,
|
||||
ret,
|
||||
e_text,
|
||||
@@ -1686,6 +1701,11 @@ out2:
|
||||
NULL,
|
||||
NULL,
|
||||
reply);
|
||||
free(*csec);
|
||||
free(*cusec);
|
||||
*csec = NULL;
|
||||
*cusec = NULL;
|
||||
}
|
||||
krb5_free_principal(context, cp);
|
||||
krb5_free_principal(context, sp);
|
||||
if (ticket) {
|
||||
@@ -1700,6 +1720,7 @@ out2:
|
||||
|
||||
if(krbtgt)
|
||||
free_ent(krbtgt);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user