Author: nick
Date: Fri May 18 06:17:41 2007
New Revision: 539453
URL: http://svn.apache.org/viewvc?view=rev&rev=539453
Log:
If the apparent location of the current user atom is past the end of the data,
then the file's clearly corrupt, so throw a better exception
Modified:
jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/EncryptedSlideShow.java
Modified:
jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/EncryptedSlideShow.java
URL:
http://svn.apache.org/viewvc/jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/EncryptedSlideShow.java?view=diff&rev=539453&r1=539452&r2=539453
==============================================================================
---
jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/EncryptedSlideShow.java
(original)
+++
jakarta/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/EncryptedSlideShow.java
Fri May 18 06:17:41 2007
@@ -22,6 +22,7 @@
import java.io.FileNotFoundException;
+import org.apache.poi.hslf.exceptions.CorruptPowerPointFileException;
import org.apache.poi.hslf.record.CurrentUserAtom;
import org.apache.poi.hslf.record.DocumentEncryptionAtom;
import org.apache.poi.hslf.record.PersistPtrHolder;
@@ -84,6 +85,11 @@
CurrentUserAtom cua = hss.getCurrentUserAtom();
if(cua.getCurrentEditOffset() != 0) {
+ // Check it's not past the end of the file
+ if(cua.getCurrentEditOffset() >
hss.getUnderlyingBytes().length) {
+ throw new CorruptPowerPointFileException("The
CurrentUserAtom claims that the offset of last edit details are past the end of
the file");
+ }
+
// Grab the details of the UserEditAtom there
Record r = Record.buildRecordAtOffset(
hss.getUnderlyingBytes(),
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
Mailing List: http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta POI Project: http://jakarta.apache.org/poi/