X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fdrivers%2Fnetwork%2Fafd%2Fafd%2Fbind.c;h=a66e967cc0e79d5c778a83b010e63114d2da13d1;hp=e16ab26874c91512fe9b4231b013c40cdafb3f9e;hb=ca142ab0656942776b994d0a0ca279bc0d7c77cb;hpb=130b0bd77f0098032b962b11e38d758327a27e95 diff --git a/reactos/drivers/network/afd/afd/bind.c b/reactos/drivers/network/afd/afd/bind.c index e16ab26874c..a66e967cc0e 100644 --- a/reactos/drivers/network/afd/afd/bind.c +++ b/reactos/drivers/network/afd/afd/bind.c @@ -77,6 +77,7 @@ AfdBindSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, PFILE_OBJECT FileObject = IrpSp->FileObject; PAFD_FCB FCB = FileObject->FsContext; PAFD_BIND_DATA BindReq; + HANDLE UserHandle; UNREFERENCED_PARAMETER(DeviceObject); @@ -99,9 +100,20 @@ AfdBindSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, AFD_DbgPrint(MID_TRACE,("FCB->Flags %x\n", FCB->Flags)); if (NT_SUCCESS(Status)) - FCB->State = SOCKET_STATE_BOUND; + { + UserHandle = NULL; + Status = ObOpenObjectByPointer(FCB->AddressFile.Object, + 0, + NULL, + MAXIMUM_ALLOWED, + IoFileObjectType, + Irp->RequestorMode, + &UserHandle); + if (NT_SUCCESS(Status)) + FCB->State = SOCKET_STATE_BOUND; + } /* MSAFD relies on us returning the address file handle in the IOSB */ return UnlockAndMaybeComplete( FCB, Status, Irp, - (ULONG_PTR)FCB->AddressFile.Handle ); + (ULONG_PTR)UserHandle); }