Commit c4b35f92 authored by Vladislav Vaintroub's avatar Vladislav Vaintroub

MDEV-3918: myisamchk bogus error for files larger than 4GB.

The failure is caused by failing stat() call . C Runtime function stat() uses old struct with 32bit st_size member,
and since Visual Studio 2010 , it returns an error on st_size overflow (i.e on files larger than 4GB)

Fix replaces stat() by my_stat(), the later is backed by 64bit-able stat64().
parent 3fa35610
......@@ -89,15 +89,11 @@ end:
int my_copystat(const char *from, const char *to, int MyFlags)
{
struct stat statbuf;
MY_STAT statbuf;
if (stat(from, &statbuf))
{
my_errno=errno;
if (MyFlags & (MY_FAE+MY_WME))
my_error(EE_STAT, MYF(ME_BELL+ME_WAITTANG),from,errno);
if (my_stat(from, &statbuf, MyFlags) == NULL)
return -1; /* Can't get stat on input file */
}
if ((statbuf.st_mode & S_IFMT) != S_IFREG)
return 1;
......
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