HTTP/2 - fix 'GOAWAY' frame size validation
Found while implementing cleartext http2 (and sending some erroneous frames) - GOAWAY can have some 'opaque debug information payload' so the frame's size is at least 8 bytes, but can be more. Change-Id: I90fb8a3df22768673c4f40ba3bf6a3f5ffe33058 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>bb10
parent
a594f85d54
commit
c0aaef30b1
|
|
@ -73,11 +73,15 @@ FrameStatus validate_frame_header(FrameType type, FrameFlags flags, quint32 payl
|
|||
return FrameStatus::sizeError;
|
||||
break;
|
||||
case FrameType::PING:
|
||||
case FrameType::GOAWAY:
|
||||
// 6.7 PING, 6.8 GOAWAY
|
||||
// 6.7 PING
|
||||
if (payloadSize != 8)
|
||||
return FrameStatus::sizeError;
|
||||
break;
|
||||
case FrameType::GOAWAY:
|
||||
// 6.8 GOAWAY
|
||||
if (payloadSize < 8)
|
||||
return FrameStatus::sizeError;
|
||||
break;
|
||||
case FrameType::RST_STREAM:
|
||||
case FrameType::WINDOW_UPDATE:
|
||||
// 6.4 RST_STREAM, 6.9 WINDOW_UPDATE
|
||||
|
|
|
|||
Loading…
Reference in New Issue