mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-15 06:10:39 +00:00
msvcrt: Fix errno set on write to read-only file.
This commit is contained in:
parent
3fd47b4663
commit
7f5f904cfa
|
@ -3590,6 +3590,8 @@ int CDECL _write(int fd, const void* buf, unsigned int count)
|
|||
TRACE("WriteFile (fd %d, hand %p) failed-last error (%ld)\n", fd,
|
||||
hand, GetLastError());
|
||||
msvcrt_set_errno(GetLastError());
|
||||
if (GetLastError() == ERROR_ACCESS_DENIED)
|
||||
*_errno() = EBADF;
|
||||
num_written = -1;
|
||||
}
|
||||
|
||||
|
@ -3718,6 +3720,8 @@ int CDECL _write(int fd, const void* buf, unsigned int count)
|
|||
TRACE("WriteFile/WriteConsoleW (fd %d, hand %p) failed-last error (%ld)\n", fd,
|
||||
hand, GetLastError());
|
||||
msvcrt_set_errno(GetLastError());
|
||||
if (GetLastError() == ERROR_ACCESS_DENIED)
|
||||
*_errno() = EBADF;
|
||||
release_ioinfo(info);
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -311,6 +311,12 @@ static void test_readmode( BOOL ascii_mode )
|
|||
ok(l == pl+fp,"line 2 ftell got %ld should be %d in %s\n", l, pl+fp, IOMODE);
|
||||
ok(lstrlenA(buffer) == 2+ao,"line 2 fgets got size %d should be %d in %s\n",
|
||||
lstrlenA(buffer), 2+ao, IOMODE);
|
||||
|
||||
errno = 0xdeadbeef;
|
||||
_doserrno = 0xdeadbeef;
|
||||
ok(write(fd, buffer, 1) == -1, "read succeeded on write-only file\n");
|
||||
ok(errno == EBADF, "errno = %d\n", errno);
|
||||
ok(_doserrno == ERROR_ACCESS_DENIED, "doserrno = %ld\n", _doserrno);
|
||||
|
||||
/* test fread across buffer boundary */
|
||||
rewind(file);
|
||||
|
|
Loading…
Reference in a new issue