{"action":"created","issue":{"url":"https://api.github.com/repos/square/okhttp/issues/2673","repository_url":"https://api.github.com/repos/square/okhttp","labels_url":"https://api.github.com/repos/square/okhttp/issues/2673/labels{/name}","comments_url":"https://api.github.com/repos/square/okhttp/issues/2673/comments","events_url":"https://api.github.com/repos/square/okhttp/issues/2673/events","html_url":"https://github.com/square/okhttp/pull/2673","id":162579186,"number":2673,"title":"Do not allow remote peer to arbitrarily size the HPACK decoder dynamic table.","user":{"login":"dave-r12","id":1520761,"avatar_url":"https://avatars.githubusercontent.com/u/1520761?v=3","gravatar_id":"","url":"https://api.github.com/users/dave-r12","html_url":"https://github.com/dave-r12","followers_url":"https://api.github.com/users/dave-r12/followers","following_url":"https://api.github.com/users/dave-r12/following{/other_user}","gists_url":"https://api.github.com/users/dave-r12/gists{/gist_id}","starred_url":"https://api.github.com/users/dave-r12/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dave-r12/subscriptions","organizations_url":"https://api.github.com/users/dave-r12/orgs","repos_url":"https://api.github.com/users/dave-r12/repos","events_url":"https://api.github.com/users/dave-r12/events{/privacy}","received_events_url":"https://api.github.com/users/dave-r12/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-06-28T00:44:58Z","updated_at":"2016-06-30T01:25:54Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/square/okhttp/pulls/2673","html_url":"https://github.com/square/okhttp/pull/2673","diff_url":"https://github.com/square/okhttp/pull/2673.diff","patch_url":"https://github.com/square/okhttp/pull/2673.patch"},"body":"It's my understanding this setting is meant to signal the amount of memory the _encoder_ can use, not the _decoder_. I think we'll want to respect this value with the new HPACK writer. I was going to see if I can incorporate that change but wanted to make sure I was reading the spec right."},"comment":{"url":"https://api.github.com/repos/square/okhttp/issues/comments/229535767","html_url":"https://github.com/square/okhttp/pull/2673#issuecomment-229535767","issue_url":"https://api.github.com/repos/square/okhttp/issues/2673","id":229535767,"user":{"login":"dave-r12","id":1520761,"avatar_url":"https://avatars.githubusercontent.com/u/1520761?v=3","gravatar_id":"","url":"https://api.github.com/users/dave-r12","html_url":"https://github.com/dave-r12","followers_url":"https://api.github.com/users/dave-r12/followers","following_url":"https://api.github.com/users/dave-r12/following{/other_user}","gists_url":"https://api.github.com/users/dave-r12/gists{/gist_id}","starred_url":"https://api.github.com/users/dave-r12/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dave-r12/subscriptions","organizations_url":"https://api.github.com/users/dave-r12/orgs","repos_url":"https://api.github.com/users/dave-r12/repos","events_url":"https://api.github.com/users/dave-r12/events{/privacy}","received_events_url":"https://api.github.com/users/dave-r12/received_events","type":"User","site_admin":false},"created_at":"2016-06-30T01:25:54Z","updated_at":"2016-06-30T01:25:54Z","body":"I found this on the mailing list https://lists.w3.org/Archives/Public/ietf-http-wg/2015OctDec/0088.html. The last message in the thread:\r\n> The way negotiation works:\r\n- Decoder side sets the upper bound via SETTINGS_HEADER_TABLE_SIZE.\r\n- Encoder side sets the actual size via dynamic table updates (inside\r\n  HPACK bitstream) within limits set by decoder.\r\n\r\nFrom chrome HPACK Encoder, https://chromium.googlesource.com/chromium/src/+/master/net/spdy/hpack/hpack_encoder.h#52\r\n>   // Called upon a change to SETTINGS_HEADER_TABLE_SIZE. Specifically, this\r\n  // is to be called after receiving (and sending an acknowledgement for) a\r\n  // SETTINGS_HEADER_TABLE_SIZE update from the remote decoding endpoint.\r\n\r\nI think this change is safe. As a next step, I can attempt to implement the handling code in the encoder (writer). My feeling is that it will mostly be a reshuffling of the logic already in the decoder (reader)."}}
{"actor":{"display_login":"dave-r12"}}