Index: net/spdy/spdy_frame_builder.cc |
diff --git a/net/spdy/spdy_frame_builder.cc b/net/spdy/spdy_frame_builder.cc |
index 9e779ff4594b3c708efe8ba52d7906d012a1dd17..6fc4531e1614e3ba3c0295cd595689ec032fe0c3 100644 |
--- a/net/spdy/spdy_frame_builder.cc |
+++ b/net/spdy/spdy_frame_builder.cc |
@@ -102,12 +102,13 @@ bool SpdyFrameBuilder::WriteFramePrefix(const SpdyFramer& framer, |
DCHECK_EQ(0u, stream_id & ~kStreamIdMask); |
DCHECK_LE(4, framer.protocol_version()); |
bool success = true; |
- DCHECK_GT(1u<<16, capacity_); // Make sure length fits in 2B. |
- success &= WriteUInt16(capacity_); |
+ size_t length_field = capacity_ - 8; |
+ DCHECK_GT(1u<<16, length_field); // Make sure length fits in 16. |
+ success &= WriteUInt16(length_field); |
success &= WriteUInt8(type); |
success &= WriteUInt8(flags); |
success &= WriteUInt32(stream_id); |
- DCHECK_EQ(framer.GetDataFrameMinimumSize(), length()); |
+ DCHECK_EQ(length(), 8u); |
return success; |
} |
@@ -147,7 +148,7 @@ bool SpdyFrameBuilder::RewriteLength(const SpdyFramer& framer) { |
return OverwriteLength(framer, |
length_ - framer.GetControlFrameHeaderSize()); |
} else { |
- return OverwriteLength(framer, length_); |
+ return OverwriteLength(framer, length_ - 8); |
} |
} |