Commit a2cfc8d5 authored by Joris Lijssens's avatar Joris Lijssens Committed by Tom Rini

lib/lzo: bugfix when input data is not compressed

When the input data is not compressed at all,
lzo1x_decompress_safe will fail, so call memcpy()
instead.
Signed-off-by: default avatarJoris Lijssens <joris.lijssens@gmail.com>
parent 96044745
......@@ -98,18 +98,25 @@ int lzop_decompress(const unsigned char *src, size_t src_len,
if (dlen > remaining)
return LZO_E_OUTPUT_OVERRUN;
/* decompress */
tmp = dlen;
r = lzo1x_decompress_safe((u8 *) src, slen, dst, &tmp);
/* When the input data is not compressed at all,
* lzo1x_decompress_safe will fail, so call memcpy()
* instead */
if (dlen == slen) {
memcpy(dst, src, slen);
} else {
/* decompress */
tmp = dlen;
r = lzo1x_decompress_safe((u8 *)src, slen, dst, &tmp);
if (r != LZO_E_OK) {
*dst_len = dst - start;
return r;
}
if (r != LZO_E_OK) {
*dst_len = dst - start;
return r;
if (dlen != tmp)
return LZO_E_ERROR;
}
if (dlen != tmp)
return LZO_E_ERROR;
src += slen;
dst += dlen;
remaining -= dlen;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment