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
e42d8aef
Commit
e42d8aef
authored
Jul 15, 2004
by
Mike McCormack
Committed by
Alexandre Julliard
Jul 15, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix a few serious race conditions in the OLE object pipe server.
parent
9f58ee70
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
16 additions
and
21 deletions
+16
-21
compobj.c
dlls/ole32/compobj.c
+15
-21
rpc.c
dlls/ole32/rpc.c
+1
-0
No files found.
dlls/ole32/compobj.c
View file @
e42d8aef
...
...
@@ -1094,29 +1094,23 @@ _LocalServerThread(LPVOID param) {
}
IStream_Release
(
pStm
);
hPipe
=
CreateNamedPipeA
(
pipefn
,
PIPE_ACCESS_DUPLEX
,
PIPE_TYPE_BYTE
|
PIPE_WAIT
,
PIPE_UNLIMITED_INSTANCES
,
4096
,
4096
,
NMPWAIT_USE_DEFAULT_WAIT
,
NULL
);
if
(
hPipe
==
INVALID_HANDLE_VALUE
)
{
FIXME
(
"pipe creation failed for %s, le is %lx
\n
"
,
pipefn
,
GetLastError
());
return
1
;
}
while
(
1
)
{
hPipe
=
CreateNamedPipeA
(
pipefn
,
PIPE_ACCESS_DUPLEX
,
PIPE_TYPE_BYTE
|
PIPE_WAIT
,
PIPE_UNLIMITED_INSTANCES
,
4096
,
4096
,
NMPWAIT_USE_DEFAULT_WAIT
,
NULL
);
if
(
hPipe
==
INVALID_HANDLE_VALUE
)
{
FIXME
(
"pipe creation failed for %s, le is %lx
\n
"
,
pipefn
,
GetLastError
());
return
1
;
}
if
(
!
ConnectNamedPipe
(
hPipe
,
NULL
))
{
ERR
(
"Failure during ConnectNamedPipe %lx, ABORT!
\n
"
,
GetLastError
());
CloseHandle
(
hPipe
);
continue
;
}
WriteFile
(
hPipe
,
buffer
,
buflen
,
&
res
,
NULL
);
CloseHandle
(
hPipe
);
if
(
!
ConnectNamedPipe
(
hPipe
,
NULL
))
{
ERR
(
"Failure during ConnectNamedPipe %lx, ABORT!
\n
"
,
GetLastError
());
break
;
}
WriteFile
(
hPipe
,
buffer
,
buflen
,
&
res
,
NULL
);
FlushFileBuffers
(
hPipe
);
DisconnectNamedPipe
(
hPipe
);
}
CloseHandle
(
hPipe
);
return
0
;
}
...
...
dlls/ole32/rpc.c
View file @
e42d8aef
...
...
@@ -512,6 +512,7 @@ HRESULT create_marshalled_proxy(REFCLSID rclsid, REFIID iid, LPVOID *ppv) {
WINE_StringFromCLSID
(
rclsid
,
pipefn
+
strlen
(
PIPEPREF
));
while
(
tries
++<
MAXTRIES
)
{
WaitNamedPipeA
(
pipefn
,
NMPWAIT_WAIT_FOREVER
);
hPipe
=
CreateFileA
(
pipefn
,
GENERIC_READ
|
GENERIC_WRITE
,
...
...
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