If the result is negative, a `` exception will be raised while trying to allocate the array `buf`. Since the maxCompressedLength function treats the length as an unsigned integer, it doesn’t care that it is negative, and it returns a valid value, which is casted to a signed integer by the Java engine. The rawCompress function then uses the received length and passes it to the natively compiled maxCompressedLength function, using the returned value to allocate a byte array. Since the length is not tested, the multiplication by two can cause an integer overflow and become negative. It does so by multiplying the length by 2 and passing it to the rawCompress` function. The function `compress(char input)` in the file `Snappy.java` receives an array of characters and compresses it. Due to unchecked multiplications, an integer overflow may occur in versions prior to 1.1.10.1, causing an unrecoverable fatal error. Snappy-java is a fast compressor/decompressor for Java.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |