u-boot/lib/lzma
Simon Glass f6eec89fa3 lzma: fix buffer bound check error further
Commit 4d3b8a0d fixed a problem with lzma decompress where it would
run out of bytes to decompress. The algorithm needs to know how many
uncompressed bytes it is expected to produce.

However, the fix introduced a potential buffer overrun, and causes
the compression test to fail (test_compression command in sandbox).

The correct fix seems to be to use the minimum of the expected number
of uncompressed bytes and the amount of output space available. That
way things work normally when there is enough space, and return an
error (without overrunning available space) when there is not.

Signed-off-by: Antonios Vamporakis <ant@area128.com>
CC: Kees Cook <keescook@chromium.org>
CC: Simon Glass <sjg@chromium.org>
CC: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
CC: Luka Perkov <luka@openwrt.org>

Signed-off-by: Simon Glass <sjg@chromium.org>
2015-01-14 11:35:43 -05:00
..
history.txt lzma: update to lzma sdk 9.20 2012-12-06 13:56:38 -07:00
import_lzmasdk.sh Rename lib_generic/ to lib/ 2010-04-13 09:13:04 +02:00
license.txt Rename lib_generic/ to lib/ 2010-04-13 09:13:04 +02:00
lzma.txt lzma: update to lzma sdk 9.20 2012-12-06 13:56:38 -07:00
LzmaDec.c lzma: update to lzma sdk 9.20 2012-12-06 13:56:38 -07:00
LzmaDec.h lzma: update to lzma sdk 9.20 2012-12-06 13:56:38 -07:00
LzmaTools.c lzma: fix buffer bound check error further 2015-01-14 11:35:43 -05:00
LzmaTools.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
Makefile kbuild: use Linux Kernel build scripts 2014-02-19 11:07:50 -05:00
README.txt Rename lib_generic/ to lib/ 2010-04-13 09:13:04 +02:00
Types.h lzma: update to lzma sdk 9.20 2012-12-06 13:56:38 -07:00

The lib_lzma functionality was written by Igor Pavlov.
The original source cames from the LZMA SDK web page:

URL: 		http://www.7-zip.org/sdk.html
Author:         Igor Pavlov

The import is made using the import_lzmasdk.sh script that:

* untars the lzmaXYY.tar.bz2 file (from the download web page)
* copies the files LzmaDec.h, Types.h, LzmaDec.c, history.txt,
  and lzma.txt from source archive into the lib_lzma directory (pwd).

Example:

 . import_lzmasdk.sh ~/lzma465.tar.bz2

Notice: The files from lzma sdk are _not modified_ by this script!

The files LzmaTools.{c,h} are provided to export the lzmaBuffToBuffDecompress()
function that wraps the complex LzmaDecode() function from the LZMA SDK. The
do_bootm() function uses the lzmaBuffToBuffDecopress() function to expand the
compressed image.

The directory U-BOOT/include/lzma contains stubs files that permit to use the
library directly from U-BOOT code without touching the original LZMA SDK's
files.

Luigi 'Comio' Mantellini <luigi.mantellini@idf-hit.com>