* Results of memory allocations were unchecked. * Neither endianness nor size of header were specified, and could thus vary incompatibly across architecture (the Java JNI bindings make the same mistake). They are now defined to be 32-bit little-endian. * Potentially malformed (i.e. negative) input to uncompress was unchecked. In addition, we no longer unconditionally resize the result unless it's more than 25% smaller than the string we allocated.