https://git.reactos.org/?p=reactos.git;a=commitdiff;h=84e76b1c4c673f73968d0…
commit 84e76b1c4c673f73968d0ce4c86b771c9cf519d4
Author: Serge Gautherie <32623169+SergeGautherie(a)users.noreply.github.com>
AuthorDate: Thu Feb 7 16:57:56 2019 +0100
Commit: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito(a)reactos.org>
CommitDate: Thu Feb 7 16:57:56 2019 +0100
[NTOS:MM] ExFreePoolWithTag(): Accept tag mismatch, on release build only (#1334)
"Release" builds should not BSoD on 'Freeing pool - invalid tag
specified' case,
this is compatible with Windows behaviour.
Nothing changes otherwise concerning the "Debug" builds, where pool-tag
mismatch
triggers a BSoD as expected.
CORE-15446
---
ntoskrnl/mm/ARM3/expool.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/ntoskrnl/mm/ARM3/expool.c b/ntoskrnl/mm/ARM3/expool.c
index 9625e50f44..416a2fbda7 100644
--- a/ntoskrnl/mm/ARM3/expool.c
+++ b/ntoskrnl/mm/ARM3/expool.c
@@ -2558,7 +2558,9 @@ ExFreePoolWithTag(IN PVOID P,
if (TagToFree && TagToFree != Tag)
{
DPRINT1("Freeing pool - invalid tag specified: %.4s != %.4s\n",
(char*)&TagToFree, (char*)&Tag);
+#if DBG
KeBugCheckEx(BAD_POOL_CALLER, 0x0A, (ULONG_PTR)P, Tag, TagToFree);
+#endif
}
//
@@ -2640,7 +2642,9 @@ ExFreePoolWithTag(IN PVOID P,
if (TagToFree && TagToFree != Tag)
{
DPRINT1("Freeing pool - invalid tag specified: %.4s != %.4s\n",
(char*)&TagToFree, (char*)&Tag);
+#if DBG
KeBugCheckEx(BAD_POOL_CALLER, 0x0A, (ULONG_PTR)P, Tag, TagToFree);
+#endif
}
//