You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tika.apache.org by "Nick Burch (JIRA)" <ji...@apache.org> on 2013/05/09 13:55:17 UTC
[jira] [Commented] (TIKA-788) DWG parser infinite loop on possibly
corrupt file
[ https://issues.apache.org/jira/browse/TIKA-788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13652888#comment-13652888 ]
Nick Burch commented on TIKA-788:
---------------------------------
Claus - an alternate version of the patch was applied last year in r1355780. As stated in my comment then, we really do need to get our hands on one of these problematic files, along with details of what AutoCAD reports the metadata to be for them, before we can write a unit test and consider this properly closed.
> DWG parser infinite loop on possibly corrupt file
> -------------------------------------------------
>
> Key: TIKA-788
> URL: https://issues.apache.org/jira/browse/TIKA-788
> Project: Tika
> Issue Type: Bug
> Components: parser
> Affects Versions: 1.0
> Reporter: Stas Shaposhnikov
>
> When parsing some dwg items, it is possible that the parser may cause itself to go into an infinite loop.
> Attached is the file causing the problem.
> Here is a possible patch that will at least proceed until an error is thrown.
> {noformat}
> === modified file 'tika-parsers/src/main/java/org/apache/tika/parser/dwg/DWGParser.java'
> --- tika-parsers/src/main/java/org/apache/tika/parser/dwg/DWGParser.java 2011-11-24 11:30:33 +0000
> +++ tika-parsers/src/main/java/org/apache/tika/parser/dwg/DWGParser.java 2011-11-25 05:27:41 +0000
> @@ -274,8 +274,10 @@
> return false;
> }
> while (toSkip > 0) {
> - byte[] skip = new byte[Math.min((int) toSkip, 0x4000)];
> - IOUtils.readFully(stream, skip);
> + byte[] skip = new byte[(int) Math.min(toSkip, 0x4000)];
> + if (IOUtils.readFully(stream, skip) == -1) {
> + return false; //invalid skip
> + }
> toSkip -= skip.length;
> }
> return true;
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira