diff --git a/reactos/drivers/filesystems/npfs/create.c b/reactos/drivers/filesystems/npfs/create.c index 2eb0aad9c0e..bef462fb8d7 100644 --- a/reactos/drivers/filesystems/npfs/create.c +++ b/reactos/drivers/filesystems/npfs/create.c @@ -255,8 +255,9 @@ NpfsCreate(PDEVICE_OBJECT DeviceObject, if (ClientCcb->Data) { ExFreePool(ClientCcb->Data); - ClientCcb->Data = NULL; } + + ExFreePool(ClientCcb); KeUnlockMutex(&Fcb->CcbListLock); Irp->IoStatus.Status = STATUS_OBJECT_PATH_NOT_FOUND; IoCompleteRequest(Irp, IO_NO_INCREMENT); @@ -273,6 +274,14 @@ NpfsCreate(PDEVICE_OBJECT DeviceObject, else if (IsListEmpty(&Fcb->ServerCcbListHead)) { DPRINT("No server fcb found!\n"); + + if (ClientCcb->Data) + { + ExFreePool(ClientCcb->Data); + } + + ExFreePool(ClientCcb); + KeUnlockMutex(&Fcb->CcbListLock); Irp->IoStatus.Status = STATUS_UNSUCCESSFUL; IoCompleteRequest(Irp, IO_NO_INCREMENT); diff --git a/reactos/drivers/filesystems/npfs/rw.c b/reactos/drivers/filesystems/npfs/rw.c index 5a03977a788..e5ef963b9ad 100644 --- a/reactos/drivers/filesystems/npfs/rw.c +++ b/reactos/drivers/filesystems/npfs/rw.c @@ -163,7 +163,7 @@ NpfsWaiterThread(PVOID InitContext) ASSERT(FALSE); } KeLockMutex(&ThreadContext->DeviceExt->PipeListLock); - Count = Status - STATUS_SUCCESS; + Count = Status - STATUS_WAIT_0; ASSERT (Count < CurrentCount); if (Count > 0) {