| Index: net/quic/spdy_utils.cc
|
| diff --git a/net/quic/spdy_utils.cc b/net/quic/spdy_utils.cc
|
| index 90e65373827dc08b0052c52e8e019117d7f82813..14e7687ec94ec4d4bd79f6b9de6311a8af004196 100644
|
| --- a/net/quic/spdy_utils.cc
|
| +++ b/net/quic/spdy_utils.cc
|
| @@ -129,16 +129,18 @@ bool SpdyUtils::CopyAndValidateHeaders(const QuicHeaderList& header_list,
|
| auto iter = headers->find(name);
|
| if (iter == headers->end()) {
|
| (*headers)[name] = p.second;
|
| - } else if (name == "cookie") {
|
| - // Obeys section 8.1.2.5 in RFC 7540 for cookie reconstruction.
|
| - headers->ReplaceOrAppendHeader(
|
| - name, base::StringPrintf("%s; %s", iter->second.as_string().c_str(),
|
| - p.second.c_str()));
|
| } else {
|
| // This header had multiple values, so it must be reconstructed.
|
| - string value = base::StringPrintf(
|
| - "%s%c%s", iter->second.as_string().c_str(), '\0', p.second.c_str());
|
| - headers->ReplaceOrAppendHeader(name, value);
|
| + StringPiece v = iter->second;
|
| + string s(v.data(), v.length());
|
| + if (name == "cookie") {
|
| + // Obeys section 8.1.2.5 in RFC 7540 for cookie reconstruction.
|
| + s.append("; ");
|
| + } else {
|
| + StringPiece("\0", 1).AppendToString(&s);
|
| + }
|
| + s.append(p.second);
|
| + headers->ReplaceOrAppendHeader(name, s);
|
| }
|
| }
|
|
|
|
|