[ 
https://issues.apache.org/jira/browse/IMPALA-8151?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pooja Nilangekar resolved IMPALA-8151.
--------------------------------------
       Resolution: Fixed
    Fix Version/s: Impala 3.2.0

> HiveUdfCall assumes StringValue is 16 bytes
> -------------------------------------------
>
>                 Key: IMPALA-8151
>                 URL: https://issues.apache.org/jira/browse/IMPALA-8151
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Backend
>    Affects Versions: Impala 3.2.0
>            Reporter: Tim Armstrong
>            Assignee: Pooja Nilangekar
>            Priority: Blocker
>              Labels: crash
>             Fix For: Impala 3.2.0
>
>
> HiveUdfCall has the sizes of internal types hardcoded as magic numbers:
> {code}
>       switch (GetChild(i)->type().type) {
>         case TYPE_BOOLEAN:
>         case TYPE_TINYINT:
>           // Using explicit sizes helps the compiler unroll memcpy
>           memcpy(input_ptr, v, 1);
>           break;
>         case TYPE_SMALLINT:
>           memcpy(input_ptr, v, 2);
>           break;
>         case TYPE_INT:
>         case TYPE_FLOAT:
>           memcpy(input_ptr, v, 4);
>           break;
>         case TYPE_BIGINT:
>         case TYPE_DOUBLE:
>           memcpy(input_ptr, v, 8);
>           break;
>         case TYPE_TIMESTAMP:
>         case TYPE_STRING:
>         case TYPE_VARCHAR:
>           memcpy(input_ptr, v, 16);
>           break;
>         default:
>           DCHECK(false) << "NYI";
>       }
> {code}
> STRING and VARCHAR were only 16 bytes because of padding. This padding is 
> removed by IMPALA-7367, so this will read past the end of the actual value. 
> This could in theory lead to a crash.
> We need to change the value, but we should probably also switch to 
> sizeof(StringValue) so that it doesn't get broken by similar changes in 
> future.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org
For additional commands, e-mail: issues-all-h...@impala.apache.org

Reply via email to