You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "Daniel Becker (JIRA)" <ji...@apache.org> on 2019/08/08 16:32:00 UTC
[jira] [Created] (IMPALA-8846) Undefined behaviour in
RleEncoder::Put
Daniel Becker created IMPALA-8846:
-------------------------------------
Summary: Undefined behaviour in RleEncoder::Put
Key: IMPALA-8846
URL: https://issues.apache.org/jira/browse/IMPALA-8846
Project: IMPALA
Issue Type: Bug
Reporter: Daniel Becker
Assignee: Daniel Becker
On line [https://github.com/apache/impala/blob/4000da35be69e469500f5f11e0e5fdec119cf5c7/be/src/util/rle-encoding.h#L346,] we test repeat_count_ <= std::numeric_limits<int32_t>::max(), which is always true (repeat_count_ is an int), then we increment repeat_count which could be std::numeric_limits<int32_t>::max() and overflow, which is undefined behaviour for signed integers.
We should either change <= to < or if we think that this never happens, remove the misleading check.
If we correct the check, it may lead to some (probably small) performance regression because the compiler could have optimised this out.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org