| Index: trunk/src/base/base64.cc
|
| ===================================================================
|
| --- trunk/src/base/base64.cc (revision 239920)
|
| +++ trunk/src/base/base64.cc (working copy)
|
| @@ -8,15 +8,21 @@
|
|
|
| namespace base {
|
|
|
| -void Base64Encode(const StringPiece& input, std::string* output) {
|
| +bool Base64Encode(const StringPiece& input, std::string* output) {
|
| std::string temp;
|
| temp.resize(modp_b64_encode_len(input.size())); // makes room for null byte
|
|
|
| + // null terminates result since result is base64 text!
|
| + int input_size = static_cast<int>(input.size());
|
| +
|
| // modp_b64_encode_len() returns at least 1, so temp[0] is safe to use.
|
| - size_t output_size = modp_b64_encode(&(temp[0]), input.data(), input.size());
|
| + size_t output_size = modp_b64_encode(&(temp[0]), input.data(), input_size);
|
| + if (output_size == MODP_B64_ERROR)
|
| + return false;
|
|
|
| temp.resize(output_size); // strips off null byte
|
| output->swap(temp);
|
| + return true;
|
| }
|
|
|
| bool Base64Decode(const StringPiece& input, std::string* output) {
|
|
|