| Index: net/quic/crypto/crypto_secret_boxer.cc
|
| diff --git a/net/quic/crypto/crypto_secret_boxer.cc b/net/quic/crypto/crypto_secret_boxer.cc
|
| index 445d888545b589a819fd79658c4938144c9d8775..b139a6a50fb8e95dd9f8e0b2b4e435cd8891f06b 100644
|
| --- a/net/quic/crypto/crypto_secret_boxer.cc
|
| +++ b/net/quic/crypto/crypto_secret_boxer.cc
|
| @@ -88,15 +88,18 @@ bool CryptoSecretBoxer::Unbox(StringPiece ciphertext,
|
| return false;
|
| }
|
| decrypter->SetNoncePrefix(nonce_prefix);
|
| - scoped_ptr<QuicData> decrypted(
|
| - decrypter->DecryptPacket(sequence_number, StringPiece(), ciphertext));
|
| - if (!decrypted.get()) {
|
| + char plaintext[kMaxPacketSize];
|
| + size_t plaintext_length = 0;
|
| + const bool success = decrypter->DecryptPacket(
|
| + sequence_number, StringPiece() /* associated data */, ciphertext,
|
| + plaintext, &plaintext_length, kMaxPacketSize);
|
| + if (!success) {
|
| return false;
|
| }
|
|
|
| - out_storage->resize(decrypted->length());
|
| - out_storage->assign(decrypted->data(), decrypted->length());
|
| - out->set(out_storage->data(), decrypted->length());
|
| + out_storage->resize(plaintext_length);
|
| + out_storage->assign(plaintext, plaintext_length);
|
| + out->set(out_storage->data(), plaintext_length);
|
| return true;
|
| }
|
|
|
|
|