From f595ba2a9eaa5a80ec09f7003d5328ee78b80353 Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Fri, 16 Mar 2018 12:25:28 +0100 Subject: 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 Reviewed-on: https://review.coreboot.org/25222 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi --- src/lib/lzma.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/lib/lzma.c') diff --git a/src/lib/lzma.c b/src/lib/lzma.c index f72755392c..dbc464cc80 100644 --- a/src/lib/lzma.c +++ b/src/lib/lzma.c @@ -37,6 +37,8 @@ size_t ulzman(const void *src, size_t srcn, void *dst, size_t dstn) * byte and re-construct. */ cp = src + LZMA_PROPERTIES_SIZE; outSize = cp[3] << 24 | cp[2] << 16 | cp[1] << 8 | cp[0]; + if (outSize > dstn) + outSize = dstn; if (LzmaDecodeProperties(&state.Properties, properties, LZMA_PROPERTIES_SIZE) != LZMA_RESULT_OK) { printk(BIOS_WARNING, "lzma: Incorrect stream properties.\n"); -- cgit v1.2.3