aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5/asn.1/asn1_get.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/krb5/asn.1/asn1_get.c')
-rw-r--r--src/lib/krb5/asn.1/asn1_get.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/lib/krb5/asn.1/asn1_get.c b/src/lib/krb5/asn.1/asn1_get.c
index 20334a2..90f5dd9 100644
--- a/src/lib/krb5/asn.1/asn1_get.c
+++ b/src/lib/krb5/asn.1/asn1_get.c
@@ -42,12 +42,6 @@ asn1_get_tag_indef(buf, class, construction, tagnum, retlen, indef)
*tagnum = ASN1_TAGNUM_CEILING;
return 0;
}
- /* Allow for the indefinite encoding */
- if ( !*(buf->next) && !*(buf->next + 1)) {
- buf->next += 2;
- *tagnum = ASN1_TAGNUM_CEILING;
- return 0;
- }
retval = asn1_get_id(buf,class,construction,tagnum);
if(retval) return retval;
retval = asn1_get_length(buf,retlen,indef);
@@ -63,7 +57,6 @@ asn1_get_tag(buf, class, construction, tagnum, retlen)
asn1_tagnum *tagnum;
int *retlen;
{
- asn1_error_code retval;
int indef;
return asn1_get_tag_indef(buf, class, construction, tagnum, retlen, &indef);
@@ -149,6 +142,8 @@ asn1_error_code asn1_get_length(buf, retlen, indef)
if(retval) return retval;
len = (len<<8) + (int)o;
}
+ if (len < 0)
+ return ASN1_OVERRUN;
if (indef != NULL && !len)
*indef = 1;
if(retlen != NULL) *retlen = len;