From: Jeffrey Altman Date: Thu, 21 Mar 2013 10:28:25 +0000 (-0400) Subject: Windows: Remove Driver Verifier warning of memory leak X-Git-Tag: openafs-stable-1_8_0pre1~1281 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=8ce8ff9cbf66ad78a9b9dc5871a4bc4f3f9ee15d 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 --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp b/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp index 3841776..478f987 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) {