Backblaze / b2-sdk-java

The official Java SDK for using Backblaze's B2 Storage APIs
Other
93 stars 26 forks source link

Avoid asking for arrays that are too big. #141

Open certainmagic opened 3 years ago

certainmagic commented 3 years ago

If someone tries to serialize a json structure that's too close to Integer.MAX_VALUE bytes, ByteArrayOutputStream will fail while trying to grow its array. The failure is particularly annoying because it's an OutOfMemoryError and it will kill the JVM. The exception's message is "Requested array size exceeds VM limit".

It'd be nice if we threw a B2JsonException instead of killing the JVM. ;)

I know this can happen during serialization. We should also look for other places we use a ByteArrayOutputStream and places we might allocate an array more directly.