check for integer overflow in OID::DecodeValue()
parent
5a9739c922
commit
0980f65266
2
asn.cpp
2
asn.cpp
|
|
@ -232,6 +232,8 @@ size_t OID::DecodeValue(BufferedTransformation &bt, word32 &v)
|
||||||
if (!bt.Get(b))
|
if (!bt.Get(b))
|
||||||
BERDecodeError();
|
BERDecodeError();
|
||||||
i++;
|
i++;
|
||||||
|
if (v >> (8*sizeof(v)-7)) // v about to overflow
|
||||||
|
BERDecodeError();
|
||||||
v <<= 7;
|
v <<= 7;
|
||||||
v += b & 0x7f;
|
v += b & 0x7f;
|
||||||
if (!(b & 0x80))
|
if (!(b & 0x80))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue