Re: [PATCH 1/1] s390/decompressor: specify __decompress() buf len to avoid overflow

From: Heiko Carstens
Date: Mon Jan 30 2023 - 10:16:48 EST


On Sun, Jan 29, 2023 at 11:47:23PM +0100, Vasily Gorbik wrote:
> Historically calls to __decompress() didn't specify "out_len" parameter
> on many architectures including s390, expecting that no writes beyond
> uncompressed kernel image are performed. This has changed since commit
> 2aa14b1ab2c4 ("zstd: import usptream v1.5.2") which includes zstd library
> commit 6a7ede3dfccb ("Reduce size of dctx by reutilizing dst buffer
> (#2751)"). Now zstd decompression code might store literal buffer in
> the unwritten portion of the destination buffer. Since "out_len" is
> not set, it is considered to be unlimited and hence free to use for
> optimization needs. On s390 this might corrupt initrd or ipl report
> which are often placed right after the decompressor buffer. Luckily the
> size of uncompressed kernel image is already known to the decompressor,
> so to avoid the problem simply specify it in the "out_len" parameter.
>
> Link: https://github.com/facebook/zstd/commit/6a7ede3dfccb
> Signed-off-by: Vasily Gorbik <gor@xxxxxxxxxxxxx>
> ---
> arch/s390/boot/decompressor.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Applied, thanks!