[MCOL-2018] Dictionary null comparison check can crash Created: 2018-12-12 Updated: 2020-08-25 Resolved: 2019-01-22 |
|
| Status: | Closed |
| Project: | MariaDB ColumnStore |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 1.1.7, 1.2.3 |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Andrew Hutchings (Inactive) | Assignee: | Daniel Lee (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||
| Sprint: | 2018-21, 2019-01 | ||||
| Description |
|
StringStore::isNullValue does the following check:
This jumps by 4x 8 bytes instead of 4 bytes. It should instead be:
|
| Comments |
| Comment by Andrew Hutchings (Inactive) [ 2018-12-12 ] |
|
For QA: I haven't been able to find a way to make this crash in the same way observed in a provided core file, but the bad behaviour is easily observable when using GDB. I suggest that it passing regression is probably good enough. |
| Comment by patrice [ 2018-12-12 ] |
|
Hi Andrew, |
| Comment by Andrew Hutchings (Inactive) [ 2018-12-12 ] |
|
plinel that line is fine since on Intel platforms the size of char is 1. If that is ever not the case it will need to be revised but I would expect other things would also need to be revised at the same time. The one in this bug is only a problem because we were casting to uint64_t which is 8 bytes so were skipping 4x 8 bytes instead of 4x 1 bytes. |
| Comment by Daniel Lee (Inactive) [ 2019-01-22 ] |
|
Builds verified: 1.1.7-1, 1.2.3-1 1.1.7-1 1.2.3-1 server commit: |