1From 9e4e9224c39195bde8ec14d1295944f713adb79a Mon Sep 17 00:00:00 2001 2From: yuan <ssspeed00@gmail.com> 3Date: Tue, 20 Apr 2021 16:16:32 +0800 4Subject: [PATCH] flac: Fix improper buffer reusing (#732) 5 6Upstream-Status: Backport [https://github.com/libsndfile/libsndfile/commit/ced91d7b971be6173b604154c39279ce90ad87cc] 7CVE: CVE-2021-4156 8 9Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> 10--- 11 src/flac.c | 4 ++++ 12 1 file changed, 4 insertions(+) 13 14diff --git a/src/flac.c b/src/flac.c 15index 64d0172e..e3320450 100644 16--- a/src/flac.c 17+++ b/src/flac.c 18@@ -948,7 +948,11 @@ flac_read_loop (SF_PRIVATE *psf, unsigned len) 19 /* Decode some more. */ 20 while (pflac->pos < pflac->len) 21 { if (FLAC__stream_decoder_process_single (pflac->fsd) == 0) 22+ { psf_log_printf (psf, "FLAC__stream_decoder_process_single returned false\n") ; 23+ /* Current frame is busted, so NULL the pointer. */ 24+ pflac->frame = NULL ; 25 break ; 26+ } ; 27 state = FLAC__stream_decoder_get_state (pflac->fsd) ; 28 if (state >= FLAC__STREAM_DECODER_END_OF_STREAM) 29 { psf_log_printf (psf, "FLAC__stream_decoder_get_state returned %s\n", FLAC__StreamDecoderStateString [state]) ; 30