From 3ecb19d0f15fb5d32d21af7e79bd6528f97c6956 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 30 Jan 2015 23:19:26 +0100 Subject: decoder/DsdLib: check size before seeking --- src/decoder/plugins/DsdLib.cxx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/decoder/plugins/DsdLib.cxx') diff --git a/src/decoder/plugins/DsdLib.cxx b/src/decoder/plugins/DsdLib.cxx index 664bf60ce..de1ce0655 100644 --- a/src/decoder/plugins/DsdLib.cxx +++ b/src/decoder/plugins/DsdLib.cxx @@ -112,19 +112,18 @@ dsdlib_tag_id3(InputStream &is, if (tagoffset == 0 || !is.KnownSize()) return; - if (!dsdlib_skip_to(nullptr, is, tagoffset)) - return; - /* Prevent broken files causing problems */ const auto size = is.GetSize(); if (tagoffset >= size) return; const id3_length_t count = size - tagoffset; - if (count < 10 || count > 1024 * 1024) return; + if (!dsdlib_skip_to(nullptr, is, tagoffset)) + return; + id3_byte_t *const id3_buf = new id3_byte_t[count]; if (id3_buf == nullptr) return; -- cgit v1.2.3