diff options
author | cbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-02 15:26:09 +0000 |
---|---|---|
committer | cbentzel@chromium.org <cbentzel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-02 15:26:09 +0000 |
commit | 4411f175490ab73c6395d2e4076568003371617b (patch) | |
tree | 3f8ddcc751d5cc70253ef1bc7b0dc2e74bcd8109 /net/spdy/spdy_framer.cc | |
parent | 03c5430b5362b1925a0bb5a1df404304fe09ace1 (diff) | |
download | chromium_src-4411f175490ab73c6395d2e4076568003371617b.zip chromium_src-4411f175490ab73c6395d2e4076568003371617b.tar.gz chromium_src-4411f175490ab73c6395d2e4076568003371617b.tar.bz2 |
SPDY: Handle incorrect number of headers when parsing frame headers.
This fix broke some tests which were also fixed.
BUG=47480
TEST=net_unittests
Contributed by: agayev@google.com
Review URL: http://codereview.chromium.org/2805066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51533 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/spdy/spdy_framer.cc')
-rw-r--r-- | net/spdy/spdy_framer.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/spdy/spdy_framer.cc b/net/spdy/spdy_framer.cc index 0a1c2b7..cd573a5 100644 --- a/net/spdy/spdy_framer.cc +++ b/net/spdy/spdy_framer.cc @@ -470,7 +470,8 @@ bool SpdyFramer::ParseHeaderBlock(const SpdyFrame* frame, void* iter = NULL; uint16 num_headers; if (builder.ReadUInt16(&iter, &num_headers)) { - for (int index = 0; index < num_headers; ++index) { + int index = 0; + for ( ; index < num_headers; ++index) { std::string name; std::string value; if (!builder.ReadString(&iter, &name)) @@ -485,7 +486,8 @@ bool SpdyFramer::ParseHeaderBlock(const SpdyFrame* frame, return false; } } - return true; + return index == num_headers && + iter == header_data + header_length; } return false; } |