Commit c69a8629 authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-21362: Do not call memcmp on null pointers

Starting with commit 37344390
we would invoke memcmp() unconditionally, even if the length is zero.
But, a call to memcmp() is undefined if any parameter is a null pointer,
even if the length is zero.

In the following tests, a null pointer is being passed to the comparison:
vcol.vcol_keys_innodb gcol.gcol_keys_innodb main.func_group_innodb
innodb.innodb_bug53592

cmp_data(): Keep WITH_UBSAN happy and avoid potential future bugs
in optimized builds, like the one addressed by
commit fc168c3a (MDEV-15587).
parent 50324ce6
...@@ -448,8 +448,7 @@ cmp_data( ...@@ -448,8 +448,7 @@ cmp_data(
} }
ulint len = std::min(len1, len2); ulint len = std::min(len1, len2);
int cmp = len ? memcmp(data1, data2, len) : 0;
int cmp = memcmp(data1, data2, len);
if (cmp) { if (cmp) {
return (cmp); return (cmp);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment