]> source.dussan.org Git - poi.git/commitdiff
Add checks for invalid row number in RowRecord to find corrupted files earlier
authorDominik Stadler <centic@apache.org>
Mon, 11 May 2015 19:59:52 +0000 (19:59 +0000)
committerDominik Stadler <centic@apache.org>
Mon, 11 May 2015 19:59:52 +0000 (19:59 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1678810 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/record/RowRecord.java

index 75d3f99b13d85847688acf7c0da6d30d2c9be56d..7a9026dc5423ae7792168aceb4fa809812566fa7 100644 (file)
@@ -64,6 +64,9 @@ public final class RowRecord extends StandardRecord {
     // bit 15 is unused
 
     public RowRecord(int rowNumber) {
+       if(rowNumber < 0) {
+               throw new IllegalArgumentException("Invalid row number " + rowNumber + " specified");
+       }
         field_1_row_number = rowNumber;
         field_4_height = (short)0xFF;
         field_5_optimize = ( short ) 0;
@@ -76,6 +79,9 @@ public final class RowRecord extends StandardRecord {
 
     public RowRecord(RecordInputStream in) {
         field_1_row_number   = in.readUShort();
+       if(field_1_row_number < 0) {
+               throw new IllegalArgumentException("Invalid row number " + field_1_row_number + " found in InputStream");
+       }
         field_2_first_col    = in.readShort();
         field_3_last_col     = in.readShort();
         field_4_height       = in.readShort();