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 2020/05/01 07:29:28 UTC

svn commit: r1877245 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSignature.java

Author: tilman
Date: Fri May  1 07:29:27 2020
New Revision: 1877245

URL: http://svn.apache.org/viewvc?rev=1877245&view=rev
Log:
PDFBOX-4822: corrected off-by-one error as suggested by Gábor Stefanik; support having extra character at beginning AND end of read bytes

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSignature.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSignature.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSignature.java?rev=1877245&r1=1877244&r2=1877245&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSignature.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSignature.java Fri May  1 07:29:27 2020
@@ -343,20 +343,20 @@ public class PDSignature implements COSO
         int readLen;
         while ((readLen = is.read(buffer)) != -1)
         {
+            int writeLen = readLen;
+            int start = 0;
             // Filter < and (
             if(buffer[0]==0x3C || buffer[0]==0x28)
             {
-                baos.write(buffer, 1, readLen);
+                ++start;
+                --writeLen;
             }
-            // Filter > and )
-            else if(buffer[readLen-1]==0x3E || buffer[readLen-1]==0x29)
+            // Filter > and ) at the end
+            if(buffer[readLen-1]==0x3E || buffer[readLen-1]==0x29)
             {
-                baos.write(buffer, 0, readLen-1);
-            }
-            else
-            {
-                baos.write(buffer, 0, readLen);
+                --writeLen;
             }
+            baos.write(buffer, start, writeLen);
         }
         is.close();