From: Jeffrey Altman Date: Thu, 9 May 2013 22:28:09 +0000 (-0400) Subject: Windows: AFSCommonWrite do not leak SectionObjectResource X-Git-Tag: upstream/1.8.0_pre1^2~1168 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=d1577c80bb8f6752b775a64af68649b648c659d9;p=packages%2Fo%2Fopenafs.git Windows: AFSCommonWrite do not leak SectionObjectResource If the write request is neither an extending write nor a non-cached write and (liStartingByte.QuadPart + ulByteCount) >= pFcb->Header.FileSize.QuadPart, then the SectionObjectResource pointer will be leaked. Instead release it before retrying. Change-Id: Id1ea7a3829a6e2be19280f366e665a11e14fba62 Reviewed-on: http://gerrit.openafs.org/9888 Reviewed-by: Peter Scott Tested-by: BuildBot Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp b/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp index 2d5f44b70..285342164 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp @@ -597,6 +597,11 @@ AFSCommonWrite( IN PDEVICE_OBJECT DeviceObject, if (!bLockOK) { + + AFSReleaseResource( &pNPFcb->SectionObjectResource); + + bReleaseSectionObject = FALSE; + AFSReleaseResource( &pNPFcb->Resource); bReleaseMain = FALSE;