Commit 2803eb52 authored by Kenton Varda's avatar Kenton Varda Committed by GitHub

Merge pull request #572 from capnproto/revert-570-base64-invalid-read

Revert "Don't read past the end of the base64 decode out buffer."
parents 365de898 5e41df4b
......@@ -268,24 +268,12 @@ KJ_TEST("C escape encoding/decoding") {
}
KJ_TEST("base64 encoding/decoding") {
{
auto encoded = encodeBase64(StringPtr("").asBytes(), false);
KJ_EXPECT(encoded == "", encoded, encoded.size());
KJ_EXPECT(heapString(decodeBase64(encoded.asArray()).asChars()) == "");
}
{
auto encoded = encodeBase64(StringPtr("foo").asBytes(), false);
KJ_EXPECT(encoded == "Zm9v", encoded, encoded.size());
KJ_EXPECT(heapString(decodeBase64(encoded.asArray()).asChars()) == "foo");
}
{
auto encoded = encodeBase64(StringPtr("quux").asBytes(), false);
KJ_EXPECT(encoded == "cXV1eA==", encoded, encoded.size());
KJ_EXPECT(heapString(decodeBase64(encoded.asArray()).asChars()) == "quux");
}
{
auto encoded = encodeBase64(StringPtr("corge").asBytes(), false);
KJ_EXPECT(encoded == "Y29yZ2U=", encoded);
......
......@@ -697,7 +697,7 @@ int base64_decode_block(const char* code_in, const int length_in,
do {
if (codechar == code_in+length_in) {
state_in->step = step_a;
state_in->plainchar = '\0';
state_in->plainchar = *plainchar;
return plainchar - plaintext_out;
}
fragment = (char)base64_decode_value(*codechar++);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment