Michael Flester created PDFBOX-5972:
---------------------------------------

             Summary: Infinite loop in fontbox o.a.f.cmap.CMapParser#readNumber
                 Key: PDFBOX-5972
                 URL: https://issues.apache.org/jira/browse/PDFBOX-5972
             Project: PDFBox
          Issue Type: Bug
          Components: FontBox
    Affects Versions: 3.0.4 PDFBox, 3.0.3 PDFBox
            Reporter: Michael Flester
         Attachments: sample-decoded.pdf

The sample document attached goes into an infinite loop in 
o.a.f.CMapParser.readNumber.

The attached document was created from proprietary content by using 
o.a.p.tools.PDFSplit and o.a.p.tools.WriteDecodedDoc, so that we could remove 
the proprietary content more easily.

 

The very short stream at line 225/226 happens to end with '6', and this makes 
the current readNumber routine rewind the EOF, and leaves it unable to progress.

 

Here is a patch that seems to fix this issue by not rewinding EOF. All existing 
unit tests still pass with this patch (diff -w), and the sample document 
exhibits normal behavior.
{noformat}
--- a/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java
+++ b/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java
@@ -652,7 +652,10 @@ public class CMapParser
             buffer.append((char) nextByte);
             nextByte = randomAcccessRead.read();
         }
+        if (nextByte != -1)
+        {
             randomAcccessRead.rewind(1);
+        }
         String value = buffer.toString();
         try
         { {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: dev-h...@pdfbox.apache.org

Reply via email to