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

ASF subversion and git services commented on IMPALA-15378:
----------------------------------------------------------

Commit af856f584e8a9ecaec406dcecc804cfc4b383a38 in impala's branch 
refs/heads/master from Michael Smith
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=af856f584 ]

IMPALA-15378: Fix OOB read in OrcSchemaResolver::ResolveColumnByName

TranslateColPaths() can legitimately return an empty
table_col_path/file_col_path pair: when the table is full ACID but
the underlying file is not, and col_path refers only to the
synthetic ACID "row" pseudo-column, neither schema has a
corresponding node, so nothing is pushed to either output path.
ResolveColumnByName() did not account for this and unconditionally
indexed table_path[0], reading out of bounds on the empty vector
(caught by libstdc++'s _GLIBCXX_ASSERTIONS, aborting impalad).
ResolveColumnByPosition() already handles this correctly since its
loop naturally no-ops on an empty path.

Add the same empty-path guard to ResolveColumnByName(), leaving
*node as root_ and *missing_field as false, matching
ResolveColumnByPosition()'s behavior.

Change-Id: Ia269c7cebc88f6bf1d7269316beab438ecd803ba
Assisted-by: Claude Sonnet 5 (GitHub Copilot)
Reviewed-on: http://gerrit.cloudera.org:8080/24891
Reviewed-by: Impala Public Jenkins <[email protected]>
Tested-by: Impala Public Jenkins <[email protected]>


> OOB read in OrcSchemaResolver::ResolveColumnByName
> --------------------------------------------------
>
>                 Key: IMPALA-15378
>                 URL: https://issues.apache.org/jira/browse/IMPALA-15378
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Backend
>            Reporter: Michael Smith
>            Assignee: Michael Smith
>            Priority: Major
>
> TranslateColPaths() can legitimately return an empty 
> table_col_path/file_col_path pair: when the table is full ACID but the 
> underlying file is not, and col_path refers only to the synthetic ACID "row" 
> pseudo-column, neither schema has a corresponding node, so nothing is pushed 
> to either output path. ResolveColumnByName() does not account for this and 
> unconditionally indexes table_path[0], reading out of bounds on the empty 
> vector



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to