Fix an integer overflow in ber read_enumerated

`enumerated + 1` can overflow if enumerated is equal to UINT_MAX.
This commit is contained in:
Sebastien Duquette
2019-10-22 13:48:59 -04:00
parent 33b1f8519f
commit fce2e16bfa
+1 -1
View File
@@ -149,7 +149,7 @@ pub fn read_enumerated(mut stream: impl io::Read, count: u8) -> io::Result<u8> {
}
let enumerated = stream.read_u8()?;
if enumerated + 1 > count {
if enumerated == std::u8::MAX || enumerated + 1 > count {
return Err(io::Error::new(
io::ErrorKind::InvalidData,
"invalid enumerated value",