[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Renewing tickets broken on Heimdal 1.0.1
Hello Alec,
Are you not passing in validate to the request (you have a post dated
ticket ?)
Love
2 mar 2008 kl. 10.21 skrev Alec Kloss:
> I'm having troubles getting tickets to renew using a Heimdal 1.0.1
> KDC and Heimdal 1.0.1 clients. The kdc.log has the message "Bad
> request to validate ticket". I've looked around a bit, and this is
> caused by a null ticket start time in check_tgs_flags() in
> krb5tgs.c *and* by tgt->flags.invalid being false (both conditions
> are true in the if check). By removing the check
> for tgt->flags.invalid and by changing _kdc_as_rep() in kerberos5.c
> to always assign a start time to a ticket (around line 1850), I can
> now renew tickets. Any thoughts about this?
>
>
> Index: kdc/krb5tgs.c
> ===================================================================
> --- kdc/krb5tgs.c (revision 22664)
> +++ kdc/krb5tgs.c (working copy)
> @@ -366,7 +366,7 @@
> KDCOptions f = b->kdc_options;
>
> if(f.validate){
> - if(!tgt->flags.invalid || tgt->starttime == NULL){
> + if(tgt->starttime == NULL){
> kdc_log(context, config, 0,
> "Bad request to validate ticket");
> return KRB5KDC_ERR_BADOPTION;
> Index: kdc/kerberos5.c
> ===================================================================
> --- kdc/kerberos5.c (revision 22664)
> +++ kdc/kerberos5.c (working copy)
> @@ -1494,11 +1494,12 @@
> start = et.authtime = kdc_time;
>
> if(f.postdated && req->req_body.from){
> - ALLOC(et.starttime);
> - start = *et.starttime = *req->req_body.from;
> + start = *req->req_body.from;
> et.flags.invalid = 1;
> et.flags.postdated = 1; /* XXX ??? */
> }
> + ALLOC(et.starttime);
> + *et.starttime = start;
> _kdc_fix_time(&b->till);
> t = *b->till;
>
>
> --
> Alec Kloss alec@SetFilePointer.com IM: angryspamhater@yahoo.com
> PGP key at http://pgp.mit.edu:11371/pks/lookup?
> op=get&search=0xA241980E
> "No Bunny!" -- Simon, from Frisky Dingo