RFR: JDK-8321599 Data loss in AVX3 Base64 decoding

Evgeny Astigeevich eastigeevich at openjdk.org
Fri Dec 8 21:17:12 UTC 2023


On Fri, 8 Dec 2023 20:56:52 GMT, Scott Gibbons <sgibbons at openjdk.org> wrote:

> Fix for looking for padding characters within the encoded string.  Was not adding start offset to length, so was looking at potentially freed or uninitialized memory.
> 
> Tested teir1 and with testcase supplied with JBS issue.
> 
> The problem will only occur when all of the following are true:
> 1. The source offset of the string to be decoded is != 0.
> 2. The characters at the beginning of the string (minus the offset) plus the string length mod 64 are either "=" or "==".
> 3. The string is >= 32 characters.
> 4. The string is not MIME encoded.
> 
> If any of these conditions are not met, the decode works as expected. This was due to omitting the source offset of the string when checking for padding characters.

@asgibbons, thank you for the quick fix.
I think it's worth to add the reproducer for the JBS issue as a test.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/17039#issuecomment-1847850653


More information about the hotspot-compiler-dev mailing list