Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
59797f29
Commit
59797f29
authored
Dec 12, 2005
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pass specific access rights to wine_server_handle_to_fd.
parent
a510a7e1
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
26 additions
and
31 deletions
+26
-31
comm.c
dlls/kernel/comm.c
+12
-12
sync.c
dlls/kernel/sync.c
+1
-1
directory.c
dlls/ntdll/directory.c
+1
-1
file.c
dlls/ntdll/file.c
+2
-2
server.c
dlls/ntdll/server.c
+0
-5
virtual.c
dlls/ntdll/virtual.c
+2
-2
int13.c
dlls/winedos/int13.c
+1
-1
socket.c
dlls/winsock/socket.c
+7
-7
No files found.
dlls/kernel/comm.c
View file @
59797f29
...
...
@@ -701,7 +701,7 @@ BOOL WINAPI SetCommBreak(
#if defined(TIOCSBRK) && defined(TIOCCBRK)
/* check if available for compilation */
int
fd
,
result
;
fd
=
get_comm_fd
(
handle
,
GENERIC_READ
);
fd
=
get_comm_fd
(
handle
,
FILE_READ_DATA
);
if
(
fd
<
0
)
return
FALSE
;
result
=
ioctl
(
fd
,
TIOCSBRK
,
0
);
release_comm_fd
(
handle
,
fd
);
...
...
@@ -738,7 +738,7 @@ BOOL WINAPI ClearCommBreak(
#if defined(TIOCSBRK) && defined(TIOCCBRK)
/* check if available for compilation */
int
fd
,
result
;
fd
=
get_comm_fd
(
handle
,
GENERIC_READ
);
fd
=
get_comm_fd
(
handle
,
FILE_READ_DATA
);
if
(
fd
<
0
)
return
FALSE
;
result
=
ioctl
(
fd
,
TIOCCBRK
,
0
);
release_comm_fd
(
handle
,
fd
);
...
...
@@ -775,7 +775,7 @@ BOOL WINAPI EscapeCommFunction(
struct
termios
port
;
TRACE
(
"handle %p, function=%d
\n
"
,
handle
,
nFunction
);
fd
=
get_comm_fd
(
handle
,
GENERIC_READ
);
fd
=
get_comm_fd
(
handle
,
FILE_READ_DATA
);
if
(
fd
<
0
)
return
FALSE
;
if
(
tcgetattr
(
fd
,
&
port
)
==
-
1
)
{
...
...
@@ -889,7 +889,7 @@ BOOL WINAPI PurgeComm(
TRACE
(
"handle %p, flags %lx
\n
"
,
handle
,
flags
);
fd
=
get_comm_fd
(
handle
,
GENERIC_READ
);
fd
=
get_comm_fd
(
handle
,
FILE_READ_DATA
);
if
(
fd
<
0
)
return
FALSE
;
/*
...
...
@@ -927,7 +927,7 @@ BOOL WINAPI ClearCommError(
{
int
fd
;
fd
=
get_comm_fd
(
handle
,
GENERIC_READ
);
fd
=
get_comm_fd
(
handle
,
FILE_READ_DATA
);
if
(
0
>
fd
)
return
FALSE
;
if
(
lpStat
)
...
...
@@ -987,7 +987,7 @@ BOOL WINAPI SetupComm(
int
fd
;
FIXME
(
"insize %ld outsize %ld unimplemented stub
\n
"
,
insize
,
outsize
);
fd
=
get_comm_fd
(
handle
,
GENERIC_READ
);
fd
=
get_comm_fd
(
handle
,
FILE_READ_DATA
);
if
(
0
>
fd
)
return
FALSE
;
release_comm_fd
(
handle
,
fd
);
return
TRUE
;
...
...
@@ -1085,7 +1085,7 @@ BOOL WINAPI SetCommState(
lpdcb
->
fDtrControl
);
fd
=
get_comm_fd
(
handle
,
GENERIC_READ
);
fd
=
get_comm_fd
(
handle
,
FILE_READ_DATA
);
if
(
fd
<
0
)
return
FALSE
;
if
((
tcgetattr
(
fd
,
&
port
))
==
-
1
)
{
...
...
@@ -1488,7 +1488,7 @@ BOOL WINAPI GetCommState(
TRACE
(
"handle %p, ptr %p
\n
"
,
handle
,
lpdcb
);
fd
=
get_comm_fd
(
handle
,
GENERIC_READ
);
fd
=
get_comm_fd
(
handle
,
FILE_READ_DATA
);
if
(
fd
<
0
)
return
FALSE
;
if
(
tcgetattr
(
fd
,
&
port
)
==
-
1
)
{
int
save_error
=
errno
;
...
...
@@ -1821,7 +1821,7 @@ BOOL WINAPI SetCommTimeouts(
if
(
!
ret
)
return
FALSE
;
/* FIXME: move this stuff to the server */
fd
=
get_comm_fd
(
hComm
,
GENERIC_READ
);
fd
=
get_comm_fd
(
hComm
,
FILE_READ_DATA
);
if
(
fd
<
0
)
return
FALSE
;
if
(
-
1
==
tcgetattr
(
fd
,
&
tios
))
{
...
...
@@ -1876,7 +1876,7 @@ BOOL WINAPI GetCommModemStatus(
*
lpModemStat
=
0
;
#ifdef TIOCMGET
fd
=
get_comm_fd
(
hFile
,
GENERIC_READ
);
fd
=
get_comm_fd
(
hFile
,
FILE_READ_DATA
);
if
(
fd
<
0
)
return
FALSE
;
result
=
ioctl
(
fd
,
TIOCMGET
,
&
mstat
);
...
...
@@ -1980,7 +1980,7 @@ static DWORD WINAPI COMM_WaitCommEventService(LPVOID arg)
serial_irq_info
new_irq_info
;
DWORD
new_mstat
,
new_evtmask
;
fd
=
get_comm_fd
(
commio
->
handle
,
GENERIC_READ
);
fd
=
get_comm_fd
(
commio
->
handle
,
FILE_READ_DATA
);
TRACE
(
"handle %p fd 0x%08x, mask 0x%08lx buffer %p event %p irq_info %p waitmask 0x%08x
\n
"
,
commio
->
handle
,
fd
,
commio
->
evtmask
,
commio
->
buffer
,
commio
->
hEvent
,
&
commio
->
irq_info
,
waitmask
);
...
...
@@ -2038,7 +2038,7 @@ static BOOL COMM_WaitCommEvent(
if
(
NtResetEvent
(
lpOverlapped
->
hEvent
,
NULL
))
return
FALSE
;
fd
=
get_comm_fd
(
hFile
,
GENERIC_WRITE
);
fd
=
get_comm_fd
(
hFile
,
FILE_WRITE_DATA
);
if
(
fd
<
0
)
return
FALSE
;
commio
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
async_commio
));
...
...
dlls/kernel/sync.c
View file @
59797f29
...
...
@@ -1202,7 +1202,7 @@ BOOL WINAPI PeekNamedPipe( HANDLE hPipe, LPVOID lpvBuffer, DWORD cbBuffer,
TRACE
(
"(%p,%p,%lu,%p,%p,%p)
\n
"
,
hPipe
,
lpvBuffer
,
cbBuffer
,
lpcbRead
,
lpcbAvail
,
lpcbMessage
);
ret
=
wine_server_handle_to_fd
(
hPipe
,
GENERIC_READ
,
&
fd
,
&
flags
);
ret
=
wine_server_handle_to_fd
(
hPipe
,
FILE_READ_DATA
,
&
fd
,
&
flags
);
if
(
ret
)
{
SetLastError
(
RtlNtStatusToDosError
(
ret
)
);
...
...
dlls/ntdll/directory.c
View file @
59797f29
...
...
@@ -1153,7 +1153,7 @@ NTSTATUS WINAPI NtQueryDirectoryFile( HANDLE handle, HANDLE event,
return
io
->
u
.
Status
=
STATUS_NOT_IMPLEMENTED
;
}
if
((
io
->
u
.
Status
=
wine_server_handle_to_fd
(
handle
,
GENERIC_READ
,
&
fd
,
NULL
))
!=
STATUS_SUCCESS
)
if
((
io
->
u
.
Status
=
wine_server_handle_to_fd
(
handle
,
FILE_LIST_DIRECTORY
,
&
fd
,
NULL
))
!=
STATUS_SUCCESS
)
return
io
->
u
.
Status
;
io
->
Information
=
0
;
...
...
dlls/ntdll/file.c
View file @
59797f29
...
...
@@ -491,7 +491,7 @@ NTSTATUS WINAPI NtReadFile(HANDLE hFile, HANDLE hEvent,
if
(
!
io_status
)
return
STATUS_ACCESS_VIOLATION
;
io_status
->
Information
=
0
;
io_status
->
u
.
Status
=
wine_server_handle_to_fd
(
hFile
,
GENERIC_READ
,
&
unix_handle
,
&
flags
);
io_status
->
u
.
Status
=
wine_server_handle_to_fd
(
hFile
,
FILE_READ_DATA
,
&
unix_handle
,
&
flags
);
if
(
io_status
->
u
.
Status
)
return
io_status
->
u
.
Status
;
if
(
flags
&
FD_FLAG_RECV_SHUTDOWN
)
...
...
@@ -713,7 +713,7 @@ NTSTATUS WINAPI NtWriteFile(HANDLE hFile, HANDLE hEvent,
if
(
!
io_status
)
return
STATUS_ACCESS_VIOLATION
;
io_status
->
Information
=
0
;
io_status
->
u
.
Status
=
wine_server_handle_to_fd
(
hFile
,
GENERIC_WRITE
,
&
unix_handle
,
&
flags
);
io_status
->
u
.
Status
=
wine_server_handle_to_fd
(
hFile
,
FILE_WRITE_DATA
,
&
unix_handle
,
&
flags
);
if
(
io_status
->
u
.
Status
)
return
io_status
->
u
.
Status
;
if
(
flags
&
FD_FLAG_SEND_SHUTDOWN
)
...
...
dlls/ntdll/server.c
View file @
59797f29
...
...
@@ -484,11 +484,6 @@ int wine_server_handle_to_fd( obj_handle_t handle, unsigned int access, int *uni
obj_handle_t
fd_handle
;
int
ret
,
removable
=
-
1
,
fd
=
-
1
;
/* FIXME: callers should be fixed to pass the appropriate specific rights */
if
(
access
&
GENERIC_READ
)
access
|=
FILE_READ_DATA
;
if
(
access
&
GENERIC_WRITE
)
access
|=
FILE_WRITE_DATA
;
access
&=
~
(
GENERIC_READ
|
GENERIC_WRITE
);
RtlEnterCriticalSection
(
&
fd_cache_section
);
*
unix_fd
=
-
1
;
...
...
dlls/ntdll/virtual.c
View file @
59797f29
...
...
@@ -1763,8 +1763,8 @@ NTSTATUS WINAPI NtMapViewOfSection( HANDLE handle, HANDLE process, PVOID *addr_p
{
int
shared_fd
;
if
((
res
=
wine_server_handle_to_fd
(
shared_file
,
GENERIC_READ
,
&
shared_fd
,
NULL
)))
goto
done
;
if
((
res
=
wine_server_handle_to_fd
(
shared_file
,
FILE_READ_DATA
|
FILE_WRITE_DATA
,
&
shared_fd
,
NULL
)))
goto
done
;
res
=
map_image
(
handle
,
unix_handle
,
base
,
size_low
,
header_size
,
shared_fd
,
removable
,
addr_ptr
);
wine_server_release_fd
(
shared_file
,
shared_fd
);
...
...
dlls/winedos/int13.c
View file @
59797f29
...
...
@@ -125,7 +125,7 @@ static void INT13_ReadFloppyParams( CONTEXT86 *context )
h
=
CreateFileW
(
drive_root
,
GENERIC_READ
,
FILE_SHARE_READ
,
NULL
,
OPEN_EXISTING
,
FILE_FLAG_BACKUP_SEMANTICS
,
NULL
);
if
(
h
==
INVALID_HANDLE_VALUE
||
wine_server_handle_to_fd
(
h
,
GENERIC_READ
,
&
floppy_fd
,
NULL
))
wine_server_handle_to_fd
(
h
,
FILE_READ_DATA
,
&
floppy_fd
,
NULL
))
{
WARN
(
"Can't determine floppy geometry !
\n
"
);
INT13_SetStatus
(
context
,
0x07
);
/* drive parameter activity failed */
...
...
dlls/winsock/socket.c
View file @
59797f29
...
...
@@ -1580,7 +1580,7 @@ SOCKET WINAPI WS_accept(SOCKET s, struct WS_sockaddr *addr,
do
{
if
(
is_blocking
)
{
int
fd
=
get_sock_fd
(
s
,
GENERIC_READ
,
NULL
);
int
fd
=
get_sock_fd
(
s
,
FILE_READ_DATA
,
NULL
);
if
(
fd
==
-
1
)
return
INVALID_SOCKET
;
/* block here */
do_block
(
fd
,
POLLIN
,
-
1
);
...
...
@@ -1681,7 +1681,7 @@ int WINAPI WS_closesocket(SOCKET s)
*/
int
WINAPI
WS_connect
(
SOCKET
s
,
const
struct
WS_sockaddr
*
name
,
int
namelen
)
{
int
fd
=
get_sock_fd
(
s
,
GENERIC_READ
,
NULL
);
int
fd
=
get_sock_fd
(
s
,
FILE_READ_DATA
,
NULL
);
TRACE
(
"socket %04x, ptr %p %s, length %d
\n
"
,
s
,
name
,
debugstr_sockaddr
(
name
),
namelen
);
...
...
@@ -2346,7 +2346,7 @@ int WINAPI WS_ioctlsocket(SOCKET s, long cmd, u_long *argp)
*/
int
WINAPI
WS_listen
(
SOCKET
s
,
int
backlog
)
{
int
fd
=
get_sock_fd
(
s
,
GENERIC_READ
,
NULL
);
int
fd
=
get_sock_fd
(
s
,
FILE_READ_DATA
,
NULL
);
TRACE
(
"socket %04x, backlog %d
\n
"
,
s
,
backlog
);
if
(
fd
!=
-
1
)
...
...
@@ -2416,8 +2416,8 @@ int WINAPI WS_select(int nfds, WS_fd_set *ws_readfds,
TRACE
(
"read %p, write %p, excp %p timeout %p
\n
"
,
ws_readfds
,
ws_writefds
,
ws_exceptfds
,
ws_timeout
);
p_read
=
fd_set_import
(
&
readfds
,
ws_readfds
,
GENERIC_READ
,
&
highfd
,
readfd
);
p_write
=
fd_set_import
(
&
writefds
,
ws_writefds
,
GENERIC_WRITE
,
&
highfd
,
writefd
);
p_read
=
fd_set_import
(
&
readfds
,
ws_readfds
,
FILE_READ_DATA
,
&
highfd
,
readfd
);
p_write
=
fd_set_import
(
&
writefds
,
ws_writefds
,
FILE_WRITE_DATA
,
&
highfd
,
writefd
);
p_except
=
fd_set_import
(
&
exceptfds
,
ws_exceptfds
,
0
,
&
highfd
,
exceptfd
);
if
(
ws_timeout
)
{
...
...
@@ -2514,7 +2514,7 @@ INT WINAPI WSASendTo( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount,
s
,
lpBuffers
,
dwBufferCount
,
dwFlags
,
to
,
tolen
,
lpOverlapped
,
lpCompletionRoutine
);
fd
=
get_sock_fd
(
s
,
GENERIC_WRITE
,
&
flags
);
fd
=
get_sock_fd
(
s
,
FILE_WRITE_DATA
,
&
flags
);
TRACE
(
"fd=%d, flags=%x
\n
"
,
fd
,
flags
);
if
(
fd
==
-
1
)
return
SOCKET_ERROR
;
...
...
@@ -3880,7 +3880,7 @@ INT WINAPI WSARecvFrom( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount,
(
lpFromlen
?
*
lpFromlen
:
-
1L
),
lpOverlapped
,
lpCompletionRoutine
);
fd
=
get_sock_fd
(
s
,
GENERIC_READ
,
&
flags
);
fd
=
get_sock_fd
(
s
,
FILE_READ_DATA
,
&
flags
);
TRACE
(
"fd=%d, flags=%x
\n
"
,
fd
,
flags
);
if
(
fd
==
-
1
)
return
SOCKET_ERROR
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment