mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
Bug #17722 Test 'partition_02myisam' hangs on Windows
The problem where is that Visual Studio 8 includes new security features to help write more secure code. One of these features is parameter validation. Many of the CRT functions, including lseek, assert on illegal parameter values in debug builds. They also call parameter validation callback routines that can be registered. We solve this problem by defaulting the error value to -1 and then only calling lseek if the fd != -1. my_seek.c: Only call lseek if the fd is not -1 on Windows
This commit is contained in:
parent
ecf41eea09
commit
c31c2eba13
1 changed files with 3 additions and 2 deletions
|
@ -22,14 +22,15 @@
|
|||
my_off_t my_seek(File fd, my_off_t pos, int whence,
|
||||
myf MyFlags __attribute__((unused)))
|
||||
{
|
||||
reg1 os_off_t newpos;
|
||||
reg1 os_off_t newpos= -1;
|
||||
DBUG_ENTER("my_seek");
|
||||
DBUG_PRINT("my",("Fd: %d Hpos: %lu Pos: %lu Whence: %d MyFlags: %d",
|
||||
fd, (ulong) (((ulonglong) pos) >> 32), (ulong) pos,
|
||||
whence, MyFlags));
|
||||
DBUG_ASSERT(pos != MY_FILEPOS_ERROR); /* safety check */
|
||||
|
||||
newpos=lseek(fd, pos, whence);
|
||||
if (-1 != fd)
|
||||
newpos=lseek(fd, pos, whence);
|
||||
if (newpos == (os_off_t) -1)
|
||||
{
|
||||
my_errno=errno;
|
||||
|
|
Loading…
Reference in a new issue