From d1486edc42e556e4526dcdd17421e865efad294a Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Tue, 13 Apr 2010 15:04:45 +0000 Subject: [PATCH] Lots more documentation on how we read in POIFS files and process the sectors/blocks and FATs. Also add a test that shows that bug #46391 is invalid git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@933663 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/poifs/common/POIFSConstants.java | 13 +++++- .../storage/BlockAllocationTableReader.java | 33 +++++++++++--- .../apache/poi/poifs/storage/BlockList.java | 2 + .../poi/poifs/storage/BlockListImpl.java | 17 +++++++ .../poifs/storage/HeaderBlockConstants.java | 5 +++ .../poi/poifs/storage/HeaderBlockReader.java | 42 ++++++++++++++---- .../poi/poifs/storage/RawDataBlock.java | 4 ++ .../poifs/filesystem/TestPOIFSFileSystem.java | 20 +++++++++ .../poifs/storage/LocalRawDataBlockList.java | 4 ++ test-data/poifs/ReferencesInvalidSectors.mpp | Bin 0 -> 356169 bytes 10 files changed, 124 insertions(+), 16 deletions(-) create mode 100644 test-data/poifs/ReferencesInvalidSectors.mpp diff --git a/src/java/org/apache/poi/poifs/common/POIFSConstants.java b/src/java/org/apache/poi/poifs/common/POIFSConstants.java index ff2050274..6630c2531 100644 --- a/src/java/org/apache/poi/poifs/common/POIFSConstants.java +++ b/src/java/org/apache/poi/poifs/common/POIFSConstants.java @@ -32,10 +32,21 @@ public interface POIFSConstants /** Some use 4096 bytes */ public static final int LARGER_BIG_BLOCK_SIZE = 0x1000; - public static final int END_OF_CHAIN = -2; public static final int PROPERTY_SIZE = 0x0080; + + /** The highest sector number you're allowed, 0xFFFFFFFA */ + public static final int LARGEST_REGULAR_SECTOR_NUMBER = -5; + + /** Indicates the sector holds a DIFAT block (0xFFFFFFFC) */ + public static final int DIFAT_SECTOR_BLOCK = -4; + /** Indicates the sector holds a FAT block (0xFFFFFFFD) */ + public static final int FAT_SECTOR_BLOCK = -3; + /** Indicates the sector is the end of a chain (0xFFFFFFFE) */ + public static final int END_OF_CHAIN = -2; + /** Indicates the sector is not used (0xFFFFFFFF) */ public static final int UNUSED_BLOCK = -1; + /** The first 4 bytes of an OOXML file, used in detection */ public static final byte[] OOXML_FILE_HEADER = new byte[] { 0x50, 0x4b, 0x03, 0x04 }; } // end public interface POIFSConstants; diff --git a/src/java/org/apache/poi/poifs/storage/BlockAllocationTableReader.java b/src/java/org/apache/poi/poifs/storage/BlockAllocationTableReader.java index 31a260939..ae5efe312 100644 --- a/src/java/org/apache/poi/poifs/storage/BlockAllocationTableReader.java +++ b/src/java/org/apache/poi/poifs/storage/BlockAllocationTableReader.java @@ -89,17 +89,35 @@ public final class BlockAllocationTableReader { + " is too high. POI maximum is " + MAX_BLOCK_COUNT + "."); } - // acquire raw data blocks containing the BAT block data - RawDataBlock blocks[] = new RawDataBlock[ block_count ]; + // We want to get the whole of the FAT table + // To do this: + // * Work through raw_block_list, which points to the + // first (up to) 109 BAT blocks + // * Jump to the XBAT offset, and read in XBATs which + // point to more BAT blocks int limit = Math.min(block_count, block_array.length); int block_index; + + // This will hold all of the BAT blocks in order + RawDataBlock blocks[] = new RawDataBlock[ block_count ]; + // Process the first (up to) 109 BAT blocks for (block_index = 0; block_index < limit; block_index++) { + // Check that the sector number of the BAT block is a valid one + int nextOffset = block_array[ block_index ]; + if(nextOffset > raw_block_list.blockCount()) { + throw new IOException("Your file contains " + raw_block_list.blockCount() + + " sectors, but the initial DIFAT array at index " + block_index + + " referenced block # " + nextOffset + ". This isn't allowed and " + + " your file is corrupt"); + } + // Record the sector number of this BAT block blocks[ block_index ] = - ( RawDataBlock ) raw_block_list - .remove(block_array[ block_index ]); + ( RawDataBlock ) raw_block_list.remove(nextOffset); } + + // Process additional BAT blocks via the XBATs if (block_index < block_count) { @@ -113,6 +131,9 @@ public final class BlockAllocationTableReader { int max_entries_per_block = BATBlock.entriesPerXBATBlock(); int chain_index_offset = BATBlock.getXBATChainOffset(); + // Each XBAT block contains either: + // (maximum number of sector indexes) + index of next XBAT + // some sector indexes + FREE sectors to max # + EndOfChain for (int j = 0; j < xbat_count; j++) { limit = Math.min(block_count - block_index, @@ -139,8 +160,8 @@ public final class BlockAllocationTableReader { throw new IOException("Could not find all blocks"); } - // now that we have all of the raw data blocks, go through and - // create the indices + // Now that we have all of the raw data blocks which make + // up the FAT, go through and create the indices setEntries(blocks, raw_block_list); } diff --git a/src/java/org/apache/poi/poifs/storage/BlockList.java b/src/java/org/apache/poi/poifs/storage/BlockList.java index a5eb7df21..d7e23cfb9 100644 --- a/src/java/org/apache/poi/poifs/storage/BlockList.java +++ b/src/java/org/apache/poi/poifs/storage/BlockList.java @@ -79,5 +79,7 @@ public interface BlockList public void setBAT(final BlockAllocationTableReader bat) throws IOException; + + public int blockCount(); } // end public interface BlockList diff --git a/src/java/org/apache/poi/poifs/storage/BlockListImpl.java b/src/java/org/apache/poi/poifs/storage/BlockListImpl.java index df7de493a..b7c6a0ccf 100644 --- a/src/java/org/apache/poi/poifs/storage/BlockListImpl.java +++ b/src/java/org/apache/poi/poifs/storage/BlockListImpl.java @@ -138,4 +138,21 @@ abstract class BlockListImpl implements BlockList { } _bat = bat; } + + /** + * Returns the count of the number of blocks + */ + public int blockCount() { + return _blocks.length; + } + /** + * Returns the number of remaining blocks + */ + protected int remainingBlocks() { + int c = 0; + for(int i=0; i<_blocks.length; i++) { + if(_blocks[i] != null) c++; + } + return c; + } } diff --git a/src/java/org/apache/poi/poifs/storage/HeaderBlockConstants.java b/src/java/org/apache/poi/poifs/storage/HeaderBlockConstants.java index eebb504b4..d5f327a52 100644 --- a/src/java/org/apache/poi/poifs/storage/HeaderBlockConstants.java +++ b/src/java/org/apache/poi/poifs/storage/HeaderBlockConstants.java @@ -33,6 +33,11 @@ public interface HeaderBlockConstants (POIFSConstants.BIG_BLOCK_SIZE - _bat_array_offset) / LittleEndianConsts.INT_SIZE; + // Note - in Microsoft terms: + // BAT ~= FAT + // SBAT ~= MiniFAT + // XBAT ~= DIFat + // useful offsets public static final int _signature_offset = 0; public static final int _bat_count_offset = 0x2C; diff --git a/src/java/org/apache/poi/poifs/storage/HeaderBlockReader.java b/src/java/org/apache/poi/poifs/storage/HeaderBlockReader.java index 1cd5dd690..a6961a27d 100644 --- a/src/java/org/apache/poi/poifs/storage/HeaderBlockReader.java +++ b/src/java/org/apache/poi/poifs/storage/HeaderBlockReader.java @@ -22,6 +22,7 @@ import static org.apache.poi.poifs.storage.HeaderBlockConstants._bat_count_offse import static org.apache.poi.poifs.storage.HeaderBlockConstants._max_bats_in_header; import static org.apache.poi.poifs.storage.HeaderBlockConstants._property_start_offset; import static org.apache.poi.poifs.storage.HeaderBlockConstants._sbat_start_offset; +import static org.apache.poi.poifs.storage.HeaderBlockConstants._sbat_block_count_offset; import static org.apache.poi.poifs.storage.HeaderBlockConstants._signature; import static org.apache.poi.poifs.storage.HeaderBlockConstants._signature_offset; import static org.apache.poi.poifs.storage.HeaderBlockConstants._xbat_count_offset; @@ -49,21 +50,37 @@ public final class HeaderBlockReader { */ private final int bigBlockSize; - /** number of big block allocation table blocks (int) */ + /** + * number of big block allocation table blocks (int). + * (Number of FAT Sectors in Microsoft parlance) + */ private final int _bat_count; - /** start of the property set block (int index of the property set - * chain's first big block) + /** + * Start of the property set block (int index of the property set + * chain's first big block). */ private final int _property_start; - /** start of the small block allocation table (int index of small + /** + * start of the small block allocation table (int index of small * block allocation table's first big block) */ private final int _sbat_start; + /** + * Number of small block allocation table blocks (int) + * (Number of MiniFAT Sectors in Microsoft parlance) + */ + private final int _sbat_count; - /** big block index for extension to the big block allocation table */ + /** + * Big block index for extension to the big block allocation table + */ private final int _xbat_start; + /** + * Number of big block allocation table blocks (int) + * (Number of DIFAT Sectors in Microsoft parlance) + */ private final int _xbat_count; private final byte[] _data; @@ -132,6 +149,7 @@ public final class HeaderBlockReader { _bat_count = getInt(_bat_count_offset, _data); _property_start = getInt(_property_start_offset, _data); _sbat_start = getInt(_sbat_start_offset, _data); + _sbat_count = getInt(_sbat_block_count_offset, _data); _xbat_start = getInt(_xbat_start_offset, _data); _xbat_count = getInt(_xbat_count_offset, _data); } @@ -169,11 +187,14 @@ public final class HeaderBlockReader { } /** - * @return start of small block allocation table + * @return start of small block (MiniFAT) allocation table */ public int getSBATStart() { return _sbat_start; } + public int getSBATCount() { + return _sbat_count; + } /** * @return number of BAT blocks @@ -183,7 +204,10 @@ public final class HeaderBlockReader { } /** - * @return BAT array + * Returns the offsets to the first (up to) 109 + * BAT sectors. + * Any additional BAT sectors + * @return BAT offset array */ public int[] getBATArray() { int[] result = new int[ _max_bats_in_header ]; @@ -197,14 +221,14 @@ public final class HeaderBlockReader { } /** - * @return XBAT count + * @return XBAT (DIFAT) count */ public int getXBATCount() { return _xbat_count; } /** - * @return XBAT index + * @return XBAT (DIFAT) index */ public int getXBATIndex() { return _xbat_start; diff --git a/src/java/org/apache/poi/poifs/storage/RawDataBlock.java b/src/java/org/apache/poi/poifs/storage/RawDataBlock.java index 5ca1781d0..a375885f9 100644 --- a/src/java/org/apache/poi/poifs/storage/RawDataBlock.java +++ b/src/java/org/apache/poi/poifs/storage/RawDataBlock.java @@ -111,6 +111,10 @@ public class RawDataBlock public boolean hasData() { return _hasData; } + + public String toString() { + return "RawDataBlock of size " + _data.length; + } /* ********** START implementation of ListManagedBlock ********** */ diff --git a/src/testcases/org/apache/poi/poifs/filesystem/TestPOIFSFileSystem.java b/src/testcases/org/apache/poi/poifs/filesystem/TestPOIFSFileSystem.java index 3fd4f461d..033ef7a02 100644 --- a/src/testcases/org/apache/poi/poifs/filesystem/TestPOIFSFileSystem.java +++ b/src/testcases/org/apache/poi/poifs/filesystem/TestPOIFSFileSystem.java @@ -148,6 +148,26 @@ public final class TestPOIFSFileSystem extends TestCase { // Check sizes } } + + /** + * Check that we do the right thing when the list of which + * sectors are BAT blocks points off the list of + * sectors that exist in the file. + */ + public void testFATandDIFATsectors() throws Exception { + POIDataSamples _samples = POIDataSamples.getPOIFSInstance(); + + // Open the file up + try { + POIFSFileSystem fs = new POIFSFileSystem( + _samples.openResourceAsStream("ReferencesInvalidSectors.mpp") + ); + fail("File is corrupt and shouldn't have been opened"); + } catch(IOException e) { + String msg = e.getMessage(); + assertTrue(msg.startsWith("Your file contains 695 sectors")); + } + } private static InputStream openSampleStream(String sampleFileName) { return HSSFTestDataSamples.openSampleFileStream(sampleFileName); diff --git a/src/testcases/org/apache/poi/poifs/storage/LocalRawDataBlockList.java b/src/testcases/org/apache/poi/poifs/storage/LocalRawDataBlockList.java index 61bc943f5..a0f1ec347 100644 --- a/src/testcases/org/apache/poi/poifs/storage/LocalRawDataBlockList.java +++ b/src/testcases/org/apache/poi/poifs/storage/LocalRawDataBlockList.java @@ -181,4 +181,8 @@ public final class LocalRawDataBlockList extends RawDataBlockList { _array = _list.toArray(new RawDataBlock[ 0 ]); } } + + public int blockCount() { + return _list.size(); + } } diff --git a/test-data/poifs/ReferencesInvalidSectors.mpp b/test-data/poifs/ReferencesInvalidSectors.mpp new file mode 100644 index 0000000000000000000000000000000000000000..583a0a1191fdde279eea96361ee8abe24ad12ac0 GIT binary patch literal 356169 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