You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2020/04/08 15:34:50 UTC

[tika] 13/14: improve mp3 parser

This is an automated email from the ASF dual-hosted git repository.

tallison pushed a commit to branch branch_1x
in repository https://gitbox.apache.org/repos/asf/tika.git

commit 57193f5191368311e0334766e366f6f77b4d15a8
Author: tallison <ta...@apache.org>
AuthorDate: Wed Apr 8 10:48:24 2020 -0400

    improve mp3 parser
---
 .../src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java        | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java b/tika-parsers/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java
index 41298dd..08dfc9d 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java
@@ -31,6 +31,8 @@ import static java.nio.charset.StandardCharsets.ISO_8859_1;
  * be turned into useful data.
  */
 public class ID3v2Frame implements MP3Frame {
+
+    private static final int MAX_RECORD_SIZE = 1_000_000;
     private int majorVersion;
     private int minorVersion;
     private int flags;
@@ -180,6 +182,10 @@ public class ID3v2Frame implements MP3Frame {
     }
     protected static byte[] readFully(InputStream inp, int length, boolean shortDataIsFatal)
             throws IOException {
+        if (length > MAX_RECORD_SIZE) {
+            throw new IOException("Record size ("+length+
+                    " bytes) is larger than the allowed record size: "+MAX_RECORD_SIZE);
+        }
         byte[] b = new byte[length];
 
         int pos = 0;