Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reject overlarge frames with RST_STREAM(FRAME_SIZE_ERROR), not GOAWAY(PROTOCOL_ERROR) #81

Closed
Lukasa opened this issue Jan 8, 2016 · 1 comment

Comments

@Lukasa
Copy link
Member

Lukasa commented Jan 8, 2016

When receiving overlarge frames we currently tear the whole connection down as a PROTOCOL_ERROR. We should either do that but signal the real problem (FRAME_SIZE_ERROR) or, even better, send RST_STREAM instead, per Section 4.2 of RFC 7540.

Found by h2spec:

  4.2. Frame Size
    × Sends large size frame that exceeds the SETTINGS_MAX_FRAME_SIZE
      - The endpoint MUST send a FRAME_SIZE_ERROR error.
        Expected: GOAWAY frame (ErrorCode: FRAME_SIZE_ERROR)
                  RST_STREAM frame (ErrorCode: FRAME_SIZE_ERROR)
                  Connection close
          Actual: GOAWAY frame (Length: 8, Flags: 0, ErrorCode: PROTOCOL_ERROR)
@Lukasa
Copy link
Member Author

Lukasa commented Jan 8, 2016

Frankly, I'm disinclined to interoperate with an implementation that is sending oversized frames after a SETTINGS ACK, so let's tear the whole connection down.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant