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

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

commit a90a95b96a019b45fd8d10e82c48fcf633fbb064
Author: tallison <[email protected]>
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;

Reply via email to