I don't even understand why that should panic, what's wrong with values greater than 0x0fff_ffff? If we truly wish to avoid very large dynamic tables, we should do so when we get the large SETTINGS_HEADER_TABLE_SIZE value, not when encoding it.
This commit is contained in:
@@ -384,10 +384,6 @@ fn encode_int<B: BufMut>(
|
|||||||
|
|
||||||
value -= low;
|
value -= low;
|
||||||
|
|
||||||
if value > 0x0fff_ffff {
|
|
||||||
panic!("value out of range");
|
|
||||||
}
|
|
||||||
|
|
||||||
dst.put_u8(first_byte | low as u8);
|
dst.put_u8(first_byte | low as u8);
|
||||||
rem -= 1;
|
rem -= 1;
|
||||||
|
|
||||||
@@ -851,6 +847,20 @@ mod test {
|
|||||||
assert_eq!("sup", huff_decode(&dst[9..]));
|
assert_eq!("sup", huff_decode(&dst[9..]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_large_size_update() {
|
||||||
|
let mut encoder = Encoder::default();
|
||||||
|
|
||||||
|
encoder.update_max_size(1912930560);
|
||||||
|
assert_eq!(Some(SizeUpdate::One(1912930560)), encoder.size_update);
|
||||||
|
|
||||||
|
let mut dst = BytesMut::with_capacity(6);
|
||||||
|
encoder
|
||||||
|
.encode_size_updates(&mut (&mut dst).limit(6))
|
||||||
|
.unwrap();
|
||||||
|
assert_eq!([63, 225, 129, 148, 144, 7], &dst[..]);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn test_evicted_overflow() {
|
fn test_evicted_overflow() {
|
||||||
|
|||||||
Reference in New Issue
Block a user