| Index: net/spdy/spdy_framer.cc
|
| diff --git a/net/spdy/spdy_framer.cc b/net/spdy/spdy_framer.cc
|
| index 5242e806b36b2d77aaba722e8dfb61c37a362cd1..69d13aabd64950e61a5b2bbcdda6aafe44f55099 100644
|
| --- a/net/spdy/spdy_framer.cc
|
| +++ b/net/spdy/spdy_framer.cc
|
| @@ -1754,10 +1754,10 @@ size_t SpdyFramer::ProcessGoAwayFramePayload(const char* data, size_t len) {
|
| uint32 status_raw = GOAWAY_OK;
|
| successful_read = reader.ReadUInt32(&status_raw);
|
| DCHECK(successful_read);
|
| - // We've read an unsigned integer, so it's enough to only check
|
| - // upper bound to ensure the value is in valid range.
|
| - if (status_raw < GOAWAY_NUM_STATUS_CODES) {
|
| - status = static_cast<SpdyGoAwayStatus>(status_raw);
|
| + if (SpdyConstants::IsValidGoAwayStatus(protocol_version(),
|
| + status_raw)) {
|
| + status = SpdyConstants::ParseGoAwayStatus(protocol_version(),
|
| + status_raw);
|
| } else {
|
| // TODO(hkhalil): Probably best to OnError here, depending on
|
| // our interpretation of the spec. Keeping with existing liberal
|
|
|