- FD_CLOSE is only for remote disconnects so don't send it when the app closes its own socket
- Validate the user-mode event handle properly

svn path=/trunk/; revision=52223
This commit is contained in:
Cameron Gutman 2011-06-14 00:56:49 +00:00
parent b1f94f44ba
commit 2c808bda98
2 changed files with 2 additions and 5 deletions

View file

@ -419,9 +419,6 @@ AfdCloseSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp,
if( !SocketAcquireStateLock( FCB ) ) return STATUS_FILE_CLOSED;
FCB->State = SOCKET_STATE_CLOSED;
FCB->PollState = AFD_EVENT_CLOSE;
FCB->PollStatus[FD_CLOSE_BIT] = STATUS_SUCCESS; //I think we can return success here
PollReeval( FCB->DeviceExt, FCB->FileObject );
InFlightRequest[0] = &FCB->ListenIrp;
InFlightRequest[1] = &FCB->ReceiveIrp;

View file

@ -287,8 +287,8 @@ AfdEventSelect( PDEVICE_OBJECT DeviceObject, PIRP Irp,
Status = ObReferenceObjectByHandle( (PVOID)EventSelectInfo->
EventObject,
FILE_ALL_ACCESS,
NULL,
KernelMode,
ExEventObjectType,
UserMode,
(PVOID *)&FCB->EventSelect,
NULL );