]> source.dussan.org Git - poi.git/commitdiff
Consistency check added when reading property set stream. An IllegalPropertyDataExcep... trunk@550310
authorRainer Klute <klute@apache.org>
Sat, 23 Jun 2007 07:44:47 +0000 (07:44 +0000)
committerRainer Klute <klute@apache.org>
Sat, 23 Jun 2007 07:44:47 +0000 (07:44 +0000)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@550021 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hpsf/Section.java

index 620a15161e685096ef973248a838b5cbe4f2f753..3b041ed9c20a599feb6244a417a0dec8e2d38a7a 100644 (file)
@@ -244,6 +244,16 @@ public class Section
         {
             ple = (PropertyListEntry) propertyList.get(propertyCount - 1);
             ple.length = size - ple.offset;
+            if (ple.length <= 0)
+            {
+                final StringBuffer b = new StringBuffer();
+                b.append("The property set claims to have a size of ");
+                b.append(size);
+                b.append(" bytes. However, it exceeds ");
+                b.append(ple.offset);
+                b.append(" bytes.");
+                throw new IllegalPropertySetDataException(b.toString());
+            }
         }
 
         /* Look for the codepage. */
@@ -323,6 +333,20 @@ public class Section
             else
                 return 1;
         }
+
+        public String toString()
+        {
+            final StringBuffer b = new StringBuffer();
+            b.append(getClass().getName());
+            b.append("[id=");
+            b.append(id);
+            b.append(", offset=");
+            b.append(offset);
+            b.append(", length=");
+            b.append(length);
+            b.append(']');
+            return b.toString();
+        }
     }