diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/asn1_lib.c')
-rw-r--r-- | src/lib/libcrypto/asn1/asn1_lib.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/libcrypto/asn1/asn1_lib.c b/src/lib/libcrypto/asn1/asn1_lib.c index 60f36bb958..aed2895400 100644 --- a/src/lib/libcrypto/asn1/asn1_lib.c +++ b/src/lib/libcrypto/asn1/asn1_lib.c | |||
@@ -104,10 +104,12 @@ int ASN1_get_object(unsigned char **pp, long *plength, int *ptag, int *pclass, | |||
104 | l<<=7L; | 104 | l<<=7L; |
105 | l|= *(p++)&0x7f; | 105 | l|= *(p++)&0x7f; |
106 | if (--max == 0) goto err; | 106 | if (--max == 0) goto err; |
107 | if (l > (INT_MAX >> 7L)) goto err; | ||
107 | } | 108 | } |
108 | l<<=7L; | 109 | l<<=7L; |
109 | l|= *(p++)&0x7f; | 110 | l|= *(p++)&0x7f; |
110 | tag=(int)l; | 111 | tag=(int)l; |
112 | if (--max == 0) goto err; | ||
111 | } | 113 | } |
112 | else | 114 | else |
113 | { | 115 | { |