summaryrefslogtreecommitdiff
path: root/network/trans/WFPSampler/syslib
diff options
context:
space:
mode:
Diffstat (limited to 'network/trans/WFPSampler/syslib')
-rw-r--r--network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.cpp65
1 files changed, 50 insertions, 15 deletions
diff --git a/network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.cpp b/network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.cpp
index 4c47f3b3..23f4a6df 100644
--- a/network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.cpp
+++ b/network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.cpp
@@ -843,9 +843,16 @@ NTSTATUS KrnlHlprWorkItemQueue(_In_ PDEVICE_OBJECT pWDMDevice,
HLPR_BAIL_LABEL:
- if(status != STATUS_SUCCESS &&
- pWorkItemData)
- KrnlHlprWorkItemDataDestroy(&pWorkItemData);
+ if(status != STATUS_SUCCESS)
+ {
+ if(pWorkItemData)
+ KrnlHlprWorkItemDataDestroy(&pWorkItemData);
+ else
+ {
+ if(pIOWorkItem)
+ IoFreeWorkItem(pIOWorkItem);
+ }
+ }
#if DBG
@@ -929,9 +936,16 @@ NTSTATUS KrnlHlprWorkItemQueue(_In_ PDEVICE_OBJECT pWDMDevice,
HLPR_BAIL_LABEL:
- if(status != STATUS_SUCCESS &&
- pWorkItemData)
- KrnlHlprWorkItemDataDestroy(&pWorkItemData);
+ if(status != STATUS_SUCCESS)
+ {
+ if(pWorkItemData)
+ KrnlHlprWorkItemDataDestroy(&pWorkItemData);
+ else
+ {
+ if(pIOWorkItem)
+ IoFreeWorkItem(pIOWorkItem);
+ }
+ }
#if DBG
@@ -1015,9 +1029,16 @@ NTSTATUS KrnlHlprWorkItemQueue(_In_ PDEVICE_OBJECT pWDMDevice,
HLPR_BAIL_LABEL:
- if(status != STATUS_SUCCESS &&
- pWorkItemData)
- KrnlHlprWorkItemDataDestroy(&pWorkItemData);
+ if(status != STATUS_SUCCESS)
+ {
+ if(pWorkItemData)
+ KrnlHlprWorkItemDataDestroy(&pWorkItemData);
+ else
+ {
+ if(pIOWorkItem)
+ IoFreeWorkItem(pIOWorkItem);
+ }
+ }
#if DBG
@@ -1098,9 +1119,16 @@ NTSTATUS KrnlHlprWorkItemQueue(_In_ PDEVICE_OBJECT pWDMDevice,
HLPR_BAIL_LABEL:
- if(status != STATUS_SUCCESS &&
- pWorkItemData)
- KrnlHlprWorkItemDataDestroy(&pWorkItemData);
+ if(status != STATUS_SUCCESS)
+ {
+ if(pWorkItemData)
+ KrnlHlprWorkItemDataDestroy(&pWorkItemData);
+ else
+ {
+ if(pIOWorkItem)
+ IoFreeWorkItem(pIOWorkItem);
+ }
+ }
#if DBG
@@ -1181,9 +1209,16 @@ NTSTATUS KrnlHlprWorkItemQueue(_In_ PDEVICE_OBJECT pWDMDevice,
HLPR_BAIL_LABEL:
- if(status != STATUS_SUCCESS &&
- pWorkItemData)
- KrnlHlprWorkItemDataDestroy(&pWorkItemData);
+ if(status != STATUS_SUCCESS)
+ {
+ if(pWorkItemData)
+ KrnlHlprWorkItemDataDestroy(&pWorkItemData);
+ else
+ {
+ if(pIOWorkItem)
+ IoFreeWorkItem(pIOWorkItem);
+ }
+ }
#if DBG