You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2015/02/01 00:10:11 UTC

svn commit: r1656257 - /pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/action/GoToAction.java

Author: tilman
Date: Sat Jan 31 23:10:11 2015
New Revision: 1656257

URL: http://svn.apache.org/r1656257
Log:
PDFBOX-2651: validate destination

Modified:
    pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/action/GoToAction.java

Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/action/GoToAction.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/action/GoToAction.java?rev=1656257&r1=1656256&r2=1656257&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/action/GoToAction.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/action/GoToAction.java Sat Jan 31 23:10:11 2015
@@ -21,6 +21,7 @@
 
 package org.apache.pdfbox.preflight.action;
 
+import java.io.IOException;
 import static org.apache.pdfbox.preflight.PreflightConstants.ERROR_ACTION_INVALID_TYPE;
 import static org.apache.pdfbox.preflight.PreflightConstants.ERROR_ACTION_MISING_KEY;
 import org.apache.pdfbox.cos.COSArray;
@@ -29,6 +30,7 @@ import org.apache.pdfbox.cos.COSDictiona
 import org.apache.pdfbox.cos.COSDocument;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.cos.COSObject;
+import org.apache.pdfbox.pdmodel.interactive.documentnavigation.destination.PDDestination;
 import org.apache.pdfbox.preflight.PreflightContext;
 import org.apache.pdfbox.preflight.ValidationResult.ValidationError;
 import org.apache.pdfbox.preflight.utils.COSUtils;
@@ -103,6 +105,16 @@ public class GoToAction extends Abstract
             COSBase type = ob.getDictionaryObject(COSName.TYPE);
             if (COSName.PAGE.equals(type))
             {
+                try
+                {
+                    PDDestination.create(ar);
+                }
+                catch (IOException e)
+                {
+                    context.addValidationError(new ValidationError(ERROR_ACTION_INVALID_TYPE,
+                            e.getMessage(), e));
+                    return false;
+                }                
                 return true;
             }
         }