From 8ce8ff9cbf66ad78a9b9dc5871a4bc4f3f9ee15d Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Thu, 21 Mar 2013 06:28:25 -0400 Subject: [PATCH] Windows: Remove Driver Verifier warning of memory leak Work items are now queued in an AFSRedir.sys data structure and are not freed when AFSRedirLib.sys is unloaded. Therefore, do allocate the memory with AFSLibExAllocatePoolWithTag(). The allocation by AFSLibExAllocatePoolWithTag results in a false Driver Verifier warning of a memory leak on unload. Change-Id: I268c4b6d20090e88114456a24b7648eef59f6289 Reviewed-on: http://gerrit.openafs.org/9641 Tested-by: BuildBot Reviewed-by: Peter Scott Reviewed-by: Rod Widdowson Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp | 30 +++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp b/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp index 3841776b0..478f98709 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp @@ -2370,9 +2370,9 @@ AFSQueueFlushExtents( IN AFSFcb *Fcb, // Allocate our request structure and send it to the worker // - pWorkItem = (AFSWorkItem *)AFSLibExAllocatePoolWithTag( NonPagedPool, - sizeof( AFSWorkItem), - AFS_WORK_ITEM_TAG); + pWorkItem = (AFSWorkItem *)AFSExAllocatePoolWithTag( NonPagedPool, + sizeof( AFSWorkItem), + AFS_WORK_ITEM_TAG); if( pWorkItem == NULL) { @@ -2499,9 +2499,9 @@ AFSQueueGlobalRootEnumeration() __try { - pWorkItem = (AFSWorkItem *) AFSLibExAllocatePoolWithTag( NonPagedPool, - sizeof(AFSWorkItem), - AFS_WORK_ITEM_TAG); + pWorkItem = (AFSWorkItem *) AFSExAllocatePoolWithTag( NonPagedPool, + sizeof(AFSWorkItem), + AFS_WORK_ITEM_TAG); if (NULL == pWorkItem) { @@ -2591,9 +2591,9 @@ AFSQueueStartIos( IN PFILE_OBJECT CacheFileObject, // Allocate our request structure and send it to the worker // - pWorkItem = (AFSWorkItem *)AFSLibExAllocatePoolWithTag( NonPagedPool, - sizeof( AFSWorkItem), - AFS_WORK_ITEM_TAG); + pWorkItem = (AFSWorkItem *)AFSExAllocatePoolWithTag( NonPagedPool, + sizeof( AFSWorkItem), + AFS_WORK_ITEM_TAG); if( pWorkItem == NULL) { @@ -2678,9 +2678,9 @@ AFSQueueInvalidateObject( IN AFSObjectInfoCB *ObjectInfo, __try { - pWorkItem = (AFSWorkItem *) AFSLibExAllocatePoolWithTag( NonPagedPool, - sizeof(AFSWorkItem), - AFS_WORK_ITEM_TAG); + pWorkItem = (AFSWorkItem *) AFSExAllocatePoolWithTag( NonPagedPool, + sizeof(AFSWorkItem), + AFS_WORK_ITEM_TAG); if (NULL == pWorkItem) { @@ -2773,9 +2773,9 @@ AFSDeferWrite( IN PDEVICE_OBJECT DeviceObject, try_return( ntStatus = STATUS_INSUFFICIENT_RESOURCES ); } - pWorkItem = (AFSWorkItem *) AFSLibExAllocatePoolWithTag( NonPagedPool, - sizeof(AFSWorkItem), - AFS_WORK_ITEM_TAG); + pWorkItem = (AFSWorkItem *) AFSExAllocatePoolWithTag( NonPagedPool, + sizeof(AFSWorkItem), + AFS_WORK_ITEM_TAG); if (NULL == pWorkItem) { -- 2.39.5