diff options
Diffstat (limited to 'src/Common/Base64Encoder.cpp')
-rw-r--r-- | src/Common/Base64Encoder.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/Common/Base64Encoder.cpp b/src/Common/Base64Encoder.cpp index 9607ec9..a2795d6 100644 --- a/src/Common/Base64Encoder.cpp +++ b/src/Common/Base64Encoder.cpp @@ -189,18 +189,18 @@ std::vector<boost::uint8_t> Base64Encoder::decode(const std::string &data) { boost::uint8_t *ptr = buf.get(); for(size_t in = 0; in < data.length()-1; in += 4) { - if(b64[data[in]] >= 64 || b64[data[in+1]] >= 64) + if(b64[(size_t)data[in]] >= 64 || b64[(size_t)data[in+1]] >= 64) break; - *ptr++ = (b64[data[in]] << 2) + (b64[data[in+1]] >> 4); - if(in >= data.length()-2 || b64[data[in+2]] >= 64) + *ptr++ = (b64[(size_t)data[in]] << 2) + (b64[(size_t)data[in+1]] >> 4); + if(in >= data.length()-2 || b64[(size_t)data[in+2]] >= 64) break; - *ptr++ = (b64[data[in+1]] << 4) + (b64[data[in+2]] >> 2); - if(in >= data.length()-3 || b64[data[in+3]] >= 64) + *ptr++ = (b64[(size_t)data[in+1]] << 4) + (b64[(size_t)data[in+2]] >> 2); + if(in >= data.length()-3 || b64[(size_t)data[in+3]] >= 64) break; - *ptr++ = (b64[data[in+2]] << 6) + b64[data[in+3]]; + *ptr++ = (b64[(size_t)data[in+2]] << 6) + b64[(size_t)data[in+3]]; } return std::vector<boost::uint8_t>(buf.get(), ptr); |