From: Lasse Collin <lasse.collin@xxxxxxxxxxx> Subject: lib/xz: fix XZ_DYNALLOC to avoid useless memory reallocations s->dict.allocated was initialized to 0 but never set after a successful allocation, thus the code always thought that the dictionary buffer has to be reallocated. Link: http://lkml.kernel.org/r/20191104185107.3b6330df@xxxxxxxxxxx Signed-off-by: Lasse Collin <lasse.collin@xxxxxxxxxxx> Reported-by: Yu Sun <yusun2@xxxxxxxxx> Acked-by: Daniel Walker <danielwa@xxxxxxxxx> Cc: "Yixia Si (yisi)" <yisi@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- lib/xz/xz_dec_lzma2.c | 1 + 1 file changed, 1 insertion(+) --- a/lib/xz/xz_dec_lzma2.c~lib-xz-fix-xz_dynalloc-to-avoid-useless-memory-reallocations +++ a/lib/xz/xz_dec_lzma2.c @@ -1146,6 +1146,7 @@ XZ_EXTERN enum xz_ret xz_dec_lzma2_reset if (DEC_IS_DYNALLOC(s->dict.mode)) { if (s->dict.allocated < s->dict.size) { + s->dict.allocated = s->dict.size; vfree(s->dict.buf); s->dict.buf = vmalloc(s->dict.size); if (s->dict.buf == NULL) { _