Index: net/http/http_mac_signature.cc |
=================================================================== |
--- net/http/http_mac_signature.cc (revision 107404) |
+++ net/http/http_mac_signature.cc (working copy) |
@@ -158,9 +158,12 @@ |
std::string signature; |
size_t length = hmac.DigestLength(); |
- char* buffer = WriteInto(&signature, length); |
- if (!hmac.Sign(request, reinterpret_cast<unsigned char*>(buffer), |
- length)) { |
+ DCHECK_GT(length, 0u); |
+ if (!hmac.Sign(request, |
+ // We need the + 1 here not because the call will write a trailing \0, |
+ // but so that signature.length() is correctly set to |length|. |
+ reinterpret_cast<unsigned char*>(WriteInto(&signature, length + 1)), |
+ length)) { |
NOTREACHED(); |
return false; |
} |