You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Timo Boehme (JIRA)" <ji...@apache.org> on 2009/02/04 15:38:02 UTC
[jira] Created: (PDFBOX-418) PDFStreamParser reads incorrect number
(patch provided)
PDFStreamParser reads incorrect number (patch provided)
-------------------------------------------------------
Key: PDFBOX-418
URL: https://issues.apache.org/jira/browse/PDFBOX-418
Project: PDFBox
Issue Type: Bug
Components: Parsing
Affects Versions: 0.8.0-incubator
Reporter: Timo Boehme
Fix For: 0.8.0-incubator
With one of our documents PDFBox (compiled Incubator version 2009-02-04) throws an floating point number exception.
The reason: PDFStreamParser in method parseNextToken() is not strict enough reading a number. In our case the string read
was '97.-96' which clearly could not be parsed as a number. Thus when parsing a number (starting at line 238) '+' and '-' should
only be allowed at fist position (maybe one should make sure that '.' can only be read once).
StringBuffer buf = new StringBuffer();
buf.append( c );
pdfSource.read();
boolean dotNotRead = (c != '.');
while( Character.isDigit(( c = (char)pdfSource.peek()) ) || (dotNotRead && (c == '.')) )
{
buf.append( c );
pdfSource.read();
if (dotNotRead && (c == '.'))
dotNotRead = false;
}
retval = COSNumber.get( buf.toString() );
break;
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Issue Comment Edited: (PDFBOX-418) PDFStreamParser reads
incorrect number (patch provided)
Posted by "Andreas Lehmkühler (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/PDFBOX-418?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12670343#action_12670343 ]
lehmi edited comment on PDFBOX-418 at 2/4/09 7:17 AM:
-------------------------------------------------------------------
Seems to be the same issue than PDFBOX-228
was (Author: lehmi):
Seems to be the same issue
> PDFStreamParser reads incorrect number (patch provided)
> -------------------------------------------------------
>
> Key: PDFBOX-418
> URL: https://issues.apache.org/jira/browse/PDFBOX-418
> Project: PDFBox
> Issue Type: Bug
> Components: Parsing
> Affects Versions: 0.8.0-incubator
> Reporter: Timo Boehme
> Fix For: 0.8.0-incubator
>
> Original Estimate: 0.08h
> Remaining Estimate: 0.08h
>
> With one of our documents PDFBox (compiled Incubator version 2009-02-04) throws an floating point number exception.
> The reason: PDFStreamParser in method parseNextToken() is not strict enough reading a number. In our case the string read
> was '97.-96' which clearly could not be parsed as a number. Thus when parsing a number (starting at line 238) '+' and '-' should
> only be allowed at fist position (maybe one should make sure that '.' can only be read once).
> The following patch completely replaces the code after "case '.':" at line 236. The first condition in replaced code is not
> necessary since the test is already be done by the 'case' statements - so we don't have to throw an exception either.
> StringBuffer buf = new StringBuffer();
>
> buf.append( c );
> pdfSource.read();
>
> boolean dotNotRead = (c != '.');
>
> while( Character.isDigit(( c = (char)pdfSource.peek()) ) || (dotNotRead && (c == '.')) )
> {
> buf.append( c );
> pdfSource.read();
>
> if (dotNotRead && (c == '.'))
> dotNotRead = false;
> }
> retval = COSNumber.get( buf.toString() );
> break;
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (PDFBOX-418) PDFStreamParser reads incorrect number
(patch provided)
Posted by "Timo Boehme (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/PDFBOX-418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Timo Boehme updated PDFBOX-418:
-------------------------------
Description:
With one of our documents PDFBox (compiled Incubator version 2009-02-04) throws an floating point number exception.
The reason: PDFStreamParser in method parseNextToken() is not strict enough reading a number. In our case the string read
was '97.-96' which clearly could not be parsed as a number. Thus when parsing a number (starting at line 238) '+' and '-' should
only be allowed at fist position (maybe one should make sure that '.' can only be read once).
The following patch completely replaces the code after "case '.':" at line 236. The first condition in replaced code is not
necessary since the test is already be done by the 'case' statements - so we don't have to throw an exception either.
StringBuffer buf = new StringBuffer();
buf.append( c );
pdfSource.read();
boolean dotNotRead = (c != '.');
while( Character.isDigit(( c = (char)pdfSource.peek()) ) || (dotNotRead && (c == '.')) )
{
buf.append( c );
pdfSource.read();
if (dotNotRead && (c == '.'))
dotNotRead = false;
}
retval = COSNumber.get( buf.toString() );
break;
was:
With one of our documents PDFBox (compiled Incubator version 2009-02-04) throws an floating point number exception.
The reason: PDFStreamParser in method parseNextToken() is not strict enough reading a number. In our case the string read
was '97.-96' which clearly could not be parsed as a number. Thus when parsing a number (starting at line 238) '+' and '-' should
only be allowed at fist position (maybe one should make sure that '.' can only be read once).
StringBuffer buf = new StringBuffer();
buf.append( c );
pdfSource.read();
boolean dotNotRead = (c != '.');
while( Character.isDigit(( c = (char)pdfSource.peek()) ) || (dotNotRead && (c == '.')) )
{
buf.append( c );
pdfSource.read();
if (dotNotRead && (c == '.'))
dotNotRead = false;
}
retval = COSNumber.get( buf.toString() );
break;
> PDFStreamParser reads incorrect number (patch provided)
> -------------------------------------------------------
>
> Key: PDFBOX-418
> URL: https://issues.apache.org/jira/browse/PDFBOX-418
> Project: PDFBox
> Issue Type: Bug
> Components: Parsing
> Affects Versions: 0.8.0-incubator
> Reporter: Timo Boehme
> Fix For: 0.8.0-incubator
>
> Original Estimate: 0.08h
> Remaining Estimate: 0.08h
>
> With one of our documents PDFBox (compiled Incubator version 2009-02-04) throws an floating point number exception.
> The reason: PDFStreamParser in method parseNextToken() is not strict enough reading a number. In our case the string read
> was '97.-96' which clearly could not be parsed as a number. Thus when parsing a number (starting at line 238) '+' and '-' should
> only be allowed at fist position (maybe one should make sure that '.' can only be read once).
> The following patch completely replaces the code after "case '.':" at line 236. The first condition in replaced code is not
> necessary since the test is already be done by the 'case' statements - so we don't have to throw an exception either.
> StringBuffer buf = new StringBuffer();
>
> buf.append( c );
> pdfSource.read();
>
> boolean dotNotRead = (c != '.');
>
> while( Character.isDigit(( c = (char)pdfSource.peek()) ) || (dotNotRead && (c == '.')) )
> {
> buf.append( c );
> pdfSource.read();
>
> if (dotNotRead && (c == '.'))
> dotNotRead = false;
> }
> retval = COSNumber.get( buf.toString() );
> break;
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (PDFBOX-418) PDFStreamParser reads incorrect
number (patch provided)
Posted by "Brian Carrier (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/PDFBOX-418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brian Carrier resolved PDFBOX-418.
----------------------------------
Resolution: Fixed
Checked into trunk.
> PDFStreamParser reads incorrect number (patch provided)
> -------------------------------------------------------
>
> Key: PDFBOX-418
> URL: https://issues.apache.org/jira/browse/PDFBOX-418
> Project: PDFBox
> Issue Type: Bug
> Components: Parsing
> Affects Versions: 0.8.0-incubator
> Reporter: Timo Boehme
> Fix For: 0.8.0-incubator
>
> Original Estimate: 0.08h
> Remaining Estimate: 0.08h
>
> With one of our documents PDFBox (compiled Incubator version 2009-02-04) throws an floating point number exception.
> The reason: PDFStreamParser in method parseNextToken() is not strict enough reading a number. In our case the string read
> was '97.-96' which clearly could not be parsed as a number. Thus when parsing a number (starting at line 238) '+' and '-' should
> only be allowed at fist position (maybe one should make sure that '.' can only be read once).
> The following patch completely replaces the code after "case '.':" at line 236. The first condition in replaced code is not
> necessary since the test is already be done by the 'case' statements - so we don't have to throw an exception either.
> StringBuffer buf = new StringBuffer();
>
> buf.append( c );
> pdfSource.read();
>
> boolean dotNotRead = (c != '.');
>
> while( Character.isDigit(( c = (char)pdfSource.peek()) ) || (dotNotRead && (c == '.')) )
> {
> buf.append( c );
> pdfSource.read();
>
> if (dotNotRead && (c == '.'))
> dotNotRead = false;
> }
> retval = COSNumber.get( buf.toString() );
> break;
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.