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:15 UTC

svn commit: r1877242 - /pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSignature.java

Author: tilman
Date: Fri May  1 07:29:15 2020
New Revision: 1877242

URL: http://svn.apache.org/viewvc?rev=1877242&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/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSignature.java

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSignature.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSignature.java?rev=1877242&r1=1877241&r2=1877242&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSignature.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSignature.java Fri May  1 07:29:15 2020
@@ -351,20 +351,20 @@ public class PDSignature implements COSO
     int readLen;
     while ((readLen = fis.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);
     }
     fis.close();