From 939784c017f065a2f4fce19b48cdde56ac4be83c Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 10 Feb 2014 05:13:37 -0500 Subject: [PATCH 1/1] Windows: AFSShareWrite do not assign pFcb too soon In AFSShareWrite the value of pFcb is used to determine whether or not the pfcb->NPFcb->Resource must be released upon exit. Therefore, it must not be assigned a value until just before the resource is acquired. Change-Id: I6951d91fcf672c8d236d19e075fff0be3552c9b8 Reviewed-on: http://gerrit.openafs.org/10828 Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp b/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp index 375b101..d9809e0 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp @@ -2145,8 +2145,6 @@ AFSShareWrite( IN PDEVICE_OBJECT DeviceObject, __Enter { - pFcb = (AFSFcb *)pIrpSp->FileObject->FsContext; - pCcb = (AFSCcb *)pIrpSp->FileObject->FsContext2; AFSDbgTrace(( AFS_SUBSYSTEM_PIPE_PROCESSING, @@ -2183,6 +2181,8 @@ AFSShareWrite( IN PDEVICE_OBJECT DeviceObject, try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES); } + pFcb = (AFSFcb *)pIrpSp->FileObject->FsContext; + AFSAcquireShared( &pFcb->NPFcb->Resource, TRUE); -- 1.7.1