[ 
https://issues.apache.org/jira/browse/ORC-313?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16390347#comment-16390347
 ] 

ASF GitHub Bot commented on ORC-313:
------------------------------------

Github user stiga-huang commented on the issue:

    https://github.com/apache/orc/pull/225
  
    With the bug of ORC-317, I think we can check the protobuf Types at the end 
of orc::readFooter for
    
    - ORC-313: check the subtype count of LIST and MAP
    - ORC-317: check that the type tree is valid (not containing loop)
    
    Will update this PR later.


> Missing checks on SubType count of LIST and MAP types
> -----------------------------------------------------
>
>                 Key: ORC-313
>                 URL: https://issues.apache.org/jira/browse/ORC-313
>             Project: ORC
>          Issue Type: Bug
>          Components: C++, Java, Reader
>    Affects Versions: 1.0.0, 1.1.2, 1.2.3, 1.3.4, 1.4.3
>            Reporter: Quanlong Huang
>            Priority: Major
>         Attachments: ill_types.orc
>
>
> When converting proto::Type to TypeImpl, we need to check that LIST and MAP 
> types have a correct number of subtypes. Otherwise, it will lead to later 
> errors in the c++ reader.
> A file with ill types is attached.
> The java reader also has this problem and throws an IndexOutOfBoundsException 
> immediately:
> {code}
> Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0
>         at java.util.Collections$EmptyList.get(Collections.java:3212)
>         at org.apache.orc.OrcProto$Type.getSubtypes(OrcProto.java:12642)
>         at org.apache.orc.OrcUtils.convertTypeFromProtobuf(OrcUtils.java:506)
>         at org.apache.orc.OrcUtils.convertTypeFromProtobuf(OrcUtils.java:515)
>         at org.apache.orc.impl.ReaderImpl.<init>(ReaderImpl.java:386)
>         at org.apache.orc.OrcFile.createReader(OrcFile.java:327)
>         at org.apache.orc.tools.FileDump.getReader(FileDump.java:241)
>         at org.apache.orc.tools.FileDump.printMetaDataImpl(FileDump.java:300)
>         at org.apache.orc.tools.FileDump.printMetaData(FileDump.java:274)
>         at org.apache.orc.tools.FileDump.main(FileDump.java:135)
>         at org.apache.orc.tools.Driver.main(Driver.java:105)
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to