Skip Menu |
 

From: Zhihong Zhang <zhang@aol.net>
To: krb5-bugs@mit.edu
Date: Wed, 21 Apr 2004 11:14:06 EDT
Subject: DER Bug
Found a bug in the DER decoder of KRB5-1.28.

This loop in asn1_get.c is wrong,

do{
retval = asn1buf_remove_octet(buf,&o);
if(retval) return retval;
tn = (tn<<7) + (asn1_tagnum)(o&0x7F);
}while(tn&0x80);

It should be "while(o&0x80)".

The effect is that it can't decode any tags bigger than 30.

Zhihong
From: Zhihong Zhang <zhang@aol.net>
To: krb5-bugs@mit.edu
Date: Wed, 21 Apr 2004 18:24:44 EDT
Subject: DER Bug
I found this bug in MIT code. If you have the same code, you should
fix it. This breaks any tag bigger than 30.

Zhihong

Show quoted text
>
> Found a bug in the DER decoder of KRB5-1.28.
>
> This loop in asn1_get.c is wrong,
>
> do{
> retval = asn1buf_remove_octet(buf,&o);
> if(retval) return retval;
> tn = (tn<<7) + (asn1_tagnum)(o&0x7F);
> }while(tn&0x80);
>
> It should be "while(o&0x80)".
>
> The effect is that it can't decode any tags bigger than 30.
>
> Zhihong
>
From: tlyu@mit.edu
Subject: CVS Commit
* asn1_get.c (asn1_get_tag_2): Patch from Zhihong Zhang to properly
handle tag numbers >= 30.

Commit By: tlyu



Revision: 17400
Changed Files:
U trunk/src/lib/krb5/asn.1/ChangeLog
U trunk/src/lib/krb5/asn.1/asn1_get.c
From: tlyu@mit.edu
Subject: CVS Commit
pull up r17400 from trunk

Commit By: tlyu



Revision: 17418
Changed Files:
U branches/krb5-1-4/src/lib/krb5/asn.1/ChangeLog
U branches/krb5-1-4/src/lib/krb5/asn.1/asn1_get.c