Given some pathologically compressed data, lz4 could possibly decide to wrap a few internal variables, causing unknown things to happen. Catch this before the wrapping happens and abort the decompression.
There is one other possible overrun in the lz4 code as implemented by linux at this point in time. As pointed out by Don, we also need to check the overflow in the data itself.

While we are at it, replace the odd error return vlue with just a 'simple' -1 value as the return value is never used for anything other than a basic 'did this work or not' check.
Fix for tick-sched.c