You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ju...@apache.org on 2010/05/26 12:21:56 UTC
svn commit: r948385 - in /tika/trunk/tika-parsers/src:
main/java/org/apache/tika/parser/mp3/ID3v2Frame.java
test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java
Author: jukka
Date: Wed May 26 10:21:56 2010
New Revision: 948385
URL: http://svn.apache.org/viewvc?rev=948385&view=rev
Log:
TIKA-424: Avoid ArrayIndexOutOfBoundsException on some mp3 files
Patch by Nick Burch
Modified:
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java
Modified: tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java?rev=948385&r1=948384&r2=948385&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java (original)
+++ tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/ID3v2Frame.java Wed May 26 10:21:56 2010
@@ -171,9 +171,12 @@ public class ID3v2Frame implements MP3Fr
*/
protected static String getTagString(byte[] data, int offset, int length) {
int actualLength = length;
- while (data[actualLength-1] == 0) {
+ while (actualLength > 0 && data[actualLength-1] == 0) {
actualLength--;
}
+ if (actualLength == 0) {
+ return "";
+ }
// Does it have an encoding flag?
// Detect by the first byte being sub 0x20
Modified: tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java?rev=948385&r1=948384&r2=948385&view=diff
==============================================================================
--- tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java (original)
+++ tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java Wed May 26 10:21:56 2010
@@ -149,5 +149,9 @@ public class Mp3ParserTest extends TestC
assertEquals(0, f.getFlags());
assertEquals(0, f.getLength());
assertEquals(0, f.getData().length);
+
+ assertEquals("", ID3v2Frame.getTagString(f.getData(), 0, 0));
+ assertEquals("", ID3v2Frame.getTagString(new byte[] {0,0,0,0}, 0, 3));
+ assertEquals("A", ID3v2Frame.getTagString(new byte[] {(byte)'A',0,0,0}, 0, 3));
}
}