Bug #92997 Reads from log are not marked appropriately
Submitted: 29 Oct 2018 19:24 Modified: 30 Nov 2018 13:47
Reporter: Robert Golebiowski Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: Security: Encryption Severity:S3 (Non-critical)
Version:5.7 OS:Any
Assigned to: CPU Architecture:Any

[29 Oct 2018 19:24] Robert Golebiowski
Description:
MySQL uses function os_file_read_no_error_handling_int_fd without marking Reads as LOG. For instance in file row0log.cc function row_log_table_apply_ops. Read function in file os0file.cc is checking for page type and if the page type is encrypted calls decrypt function on the page. It can so happen that log page read with os_file_read_no_error_handling_int_fd will misinterpret log as encrypted pages and call decrypt on it.Q

How to repeat:
Code inspection

Suggested fix:
Log reads should be marked as :

IORequest       request(IORequest::LOG | IORequest::READ);
[30 Oct 2018 13:47] MySQL Verification Team
Hi,

I have analysed your report and I see some discrepancies. Hence, which release of 5.7 are you exactly analysing ???

In the one that I use, there are two reading functions. Also, os_file_read_no_error_handling_int_fd() function is actually a macro that calls os_file_read_no_error_handling_func() function, which in turn calls os_file_read_page() function and none of these is checking for the LOG or ENCRYPT type.

Hence, would you be so kind to clear the matter a bit ....
[1 Dec 2018 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".