https://git.reactos.org/?p=reactos.git;a=commitdiff;h=84e76b1c4c673f73968d0c...
commit 84e76b1c4c673f73968d0ce4c86b771c9cf519d4 Author: Serge Gautherie 32623169+SergeGautherie@users.noreply.github.com AuthorDate: Thu Feb 7 16:57:56 2019 +0100 Commit: Hermès BÉLUSCA - MAÏTO hermes.belusca-maito@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 }
//