lib/lzma: Respect dstn argument
Don't write more bytes than the caller requests. Based on I484b5c1e3809781033d146609a35a9e5e666c8ed. Change-Id: I336de417c7cd6f35cf84947fc4ae161c15bd93ef Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/25222 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
parent
cf1ba95fa4
commit
f595ba2a9e
|
@ -37,6 +37,8 @@ size_t ulzman(const void *src, size_t srcn, void *dst, size_t dstn)
|
||||||
* byte and re-construct. */
|
* byte and re-construct. */
|
||||||
cp = src + LZMA_PROPERTIES_SIZE;
|
cp = src + LZMA_PROPERTIES_SIZE;
|
||||||
outSize = cp[3] << 24 | cp[2] << 16 | cp[1] << 8 | cp[0];
|
outSize = cp[3] << 24 | cp[2] << 16 | cp[1] << 8 | cp[0];
|
||||||
|
if (outSize > dstn)
|
||||||
|
outSize = dstn;
|
||||||
if (LzmaDecodeProperties(&state.Properties, properties,
|
if (LzmaDecodeProperties(&state.Properties, properties,
|
||||||
LZMA_PROPERTIES_SIZE) != LZMA_RESULT_OK) {
|
LZMA_PROPERTIES_SIZE) != LZMA_RESULT_OK) {
|
||||||
printk(BIOS_WARNING, "lzma: Incorrect stream properties.\n");
|
printk(BIOS_WARNING, "lzma: Incorrect stream properties.\n");
|
||||||
|
|
Loading…
Reference in New Issue