1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
From: =?utf-8?q?Fran=C3=A7ois_Cartegnie?= <fcvlcdev@free.fr>
Date: Mon, 10 Aug 2020 14:55:02 +0200
Subject: meta_engine: taglib: restrict unlimited reads on streams
taglib reads unlimited if no IDv3 or MPEG header is found at the
beginning.
(cherry picked from commit 8ec8b0d2add84b6d6b0c043e1c4f241998915ecd) (rebased)
rebased:
- only used with Taglib 1.11+ which is not always the case with 3.0
---
modules/meta_engine/taglib.cpp | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp
index a52c67c..0b7b582 100644
--- a/modules/meta_engine/taglib.cpp
+++ b/modules/meta_engine/taglib.cpp
@@ -946,7 +946,14 @@ static int ReadMeta( vlc_object_t* p_this)
p_stream = p_filter;
VlcIostream s( p_stream );
- f = FileRef( &s );
+#ifndef VLC_PATCHED_TAGLIB_ID3V2_READSTYLE
+ uint64_t dummy;
+ if( vlc_stream_GetSize( p_stream, &dummy ) != VLC_SUCCESS )
+ s.setMaxSequentialRead( 2048 );
+ else
+ s.setMaxSequentialRead( 1024 * 2048 );
+#endif
+ f = FileRef( &s, false, AudioProperties::ReadStyle::Fast );
#else // !TAGLIB_VERSION_1_11
char *psz_path = vlc_uri2path( psz_uri );
free( psz_uri );
|