Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8008929

Base64.getXDecoder().decode() doesn't throw IAE for a string with randomly injected paddings if the decoding could not be done

XMLWordPrintable

      The following code sample would not throw the expected IAE:

      import java.nio.ByteBuffer;
      import java.nio.charset.StandardCharsets;
      import java.util.Base64;

      public class NowhereToWrite {
          public static void main(String[] args) {
              Base64.getDecoder().decode(
                      ByteBuffer.wrap("bGV==h==c3VyZS4=".getBytes(StandardCharsets.US_ASCII)),
                      ByteBuffer.allocate(0));
          }
      }


      The following testcases will fail due to this issue:


      api/java_util/Base64/Decoder/index.html#DecodingNonValidBase64Scheme_MIME[decodeBufferInvalidBase64_nowhereToWrite_emptyByteBuffer]
      api/java_util/Base64/Decoder/index.html#DecodingNonValidBase64Scheme_MIME[decodeBufferInvalidBase64_nowhereToWrite_fullByteBuffer]
      api/java_util/Base64/Decoder/index.html#DecodingNonValidBase64Scheme_Basic[decodeBufferInvalidBase64_nowhereToWrite_emptyByteBuffer]
      api/java_util/Base64/Decoder/index.html#DecodingNonValidBase64Scheme_Basic[decodeBufferInvalidBase64_nowhereToWrite_fullByteBuffer]
      api/java_util/Base64/Decoder/index.html#DecodingNonValidBase64Scheme_URL[decodeBufferInvalidBase64_nowhereToWrite_emptyByteBuffer]
      api/java_util/Base64/Decoder/index.html#DecodingNonValidBase64Scheme_URL[decodeBufferInvalidBase64_nowhereToWrite_fullByteBuffer]




            sherman Xueming Shen
            dbessono Dmitry Bessonov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: