summaryrefslogtreecommitdiff
path: root/network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.cpp
diff options
context:
space:
mode:
authorDipannita Shaw <[email protected]>2021-04-27 14:26:21 -0700
committerDipannita Shaw <[email protected]>2021-04-27 14:26:21 -0700
commit78a1795995814a0bac43042f7ca68e83ab525bd5 (patch)
tree8e2eb0e8c3a11220f2f119964c6c6e3674eda0da /network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.cpp
parent465e27457dd3b47cf64e4b7274705cc6acc011a6 (diff)
parent672fafbcc455cd97172b2df78040c7c405e32d00 (diff)
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'network/trans/WFPSampler/syslib/HelperFunctions_WorkItems.cpp')
-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