Details
-
Bug
-
Status: In Review (View Workflow)
-
Critical
-
Resolution: Unresolved
-
10.11
-
None
-
Can result in hang or crash
Description
Fixes unchecked memcpy in Aria redo log apply.
Bug: KEY_OP_ADD_SUFFIX at ma_key_recover.c:1058 does memcpy with insert_length only guarded by DBUG_ASSERT, no runtime check for header_end or max_page_size. Corrupt log can cause heap overflow. DEL_SUFFIX has same missing runtime check.
Fix: Add runtime validation before memcpy and page_length update. For ADD_SUFFIX verify header+2+insert_length <= header_end and page_length+insert_length <= max_page_size, for DEL_SUFFIX verify header <= header_end and page_length >= keypage_header+del_length. On failure set mark_crashed=1 and goto err to mark file crashed. Keeps existing DBUG_ASSERT for debug builds.
Evidence: Verified RED has no runtime check, GREEN adds bounds checks. Diff touches 1 file, 12 lines.