| Bug #73523 | executing innochecksum on an unreadable file produces random error message | ||
|---|---|---|---|
| Submitted: | 10 Aug 2014 17:03 | Modified: | 11 Aug 2014 7:26 | 
| Reporter: | David Bennett | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: InnoDB storage engine | Severity: | S3 (Non-critical) | 
| Version: | 5.6, 5.6.19 | OS: | Windows | 
| Assigned to: | CPU Architecture: | Any | |
| Tags: | mysql extra innochecksum utility | ||
   [10 Aug 2014 17:14]
   David Bennett        
  extra_innochecksum.cc_bug_73523.patch
Attachment: extra_innochecksum.cc_bug_73523.patch (text/x-patch), 520 bytes.
   [11 Aug 2014 7:26]
   MySQL Verification Team        
  Hello David, Thank you for the bug report and contribution. Verified as described. Thanks, Umesh
   [11 Aug 2014 7:30]
   MySQL Verification Team        
  innochecksum.exe -v ibdata1
InnoDB offline file checksum utility.
Variables (--variable-name=value)
and boolean options {FALSE|TRUE}  Value (after reading options)
--------------------------------- ----------------------------------------
verbose                           TRUE
debug                             FALSE
count                             FALSE
start-page                        0
end-page                          0
page                              0
Faulting application name: innochecksum.exe, version: 5.6.19.0, time stamp: 0x5368cc26
Faulting module name: innochecksum.exe, version: 5.6.19.0, time stamp: 0x5368cc26
Exception code: 0xc0000005
Fault offset: 0x00000000000d3652
Faulting process id: 0x2c4c
Faulting application start time: 0x01cfb52c9360b56c
Faulting application path: D:\ushastry\mysql-advanced-5.6.19-winx64\bin\innochecksum.exe
Faulting module path: D:\ushastry\mysql-advanced-5.6.19-winx64\bin\innochecksum.exe
Report Id: d13d1338-211f-11e4-8caa-bc305bc8d894
 
   [11 Aug 2014 7:36]
   MySQL Verification Team        
  fprintf expecting two char*  parameters but only 1 given
mysql-5.6/extra/innochecksum.cc:
157  			OPEN_EXISTING, NULL, NULL);
158  
159: 	if (hFile == INVALID_HANDLE_VALUE) {
160  		/* print the error message. */
161  		fprintf(stderr, "Filename::%s %s\n",	  
162			win32_error_message(GetLastError()));
163			return (NULL);
164
165
 
   [22 Oct 2014 8:24]
   Daniƫl van Eeden        
  Is this also affecting innochecksum from MySQL 5.7?
   [21 Aug 2015 15:20]
   MySQL Verification Team        
  Bug still exists on current mysql-trunk. Only 3 of 4 expected parameters are given to fprintf in function open_file of innochecksum.cc, line 264


Description: Running the innochecksum.exe utility on the Windows platform on a file that is not readable causes random data to be output. How to repeat: icacls ibdata1 /reset icacls ibdata1 /inheritance:r /grant:r Everyone:W innochecksum.exe -v ibdata1 InnoDB offline file checksum utility. Variables (--variable-name=value) and boolean options {FALSE|TRUE} Value (after reading options) --------------------------------- ---------------------------------------- verbose TRUE debug FALSE count FALSE start-page 0 end-page 0 page 0 Filename::Access is denied. {random data appears here} Suggested fix: when the function open_file() in the source file extra\innochecksum.cc encounters a windows INVALID_HANDLE_VALUE error condition it reports the error to stderr and returns null. The fprintf call is expecting two parameters (name, error_msg) and only the error_msg is specified.