bzip2/lzma: remove nasty uncompressed size hack in pre-boot environment
authorPhillip Lougher <phillip@lougher.demon.co.uk>
Thu, 6 Aug 2009 22:09:31 +0000 (15:09 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 7 Aug 2009 17:39:56 +0000 (10:39 -0700)
commitb1af4315d823a2b6659c5b14bc17f7bc61878ef4
treed9a04709f52c27f59a93875fd705dbed2c581b09
parentdaeb6b6fbe27049f465c48a7d0ee5555c3b84064
bzip2/lzma: remove nasty uncompressed size hack in pre-boot environment

decompress_bunzip2 and decompress_unlzma have a nasty hack that subtracts
4 from the input length if being called in the pre-boot environment.

This is a nasty hack because it relies on the fact that flush = NULL only
when called from the pre-boot environment (i.e.
arch/x86/boot/compressed/misc.c).  initramfs.c/do_mounts_rd.c pass in a
flush buffer (flush != NULL).

This hack prevents the decompressors from being used with flush = NULL by
other callers unless knowledge of the hack is propagated to them.

This patch removes the hack by making decompress (called only from the
pre-boot environment) a wrapper function that subtracts 4 from the input
length before calling the decompressor.

Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lib/decompress_bunzip2.c
lib/decompress_unlzma.c