https://git.reactos.org/?p=reactos.git;a=commitdiff;h=84e76b1c4c673f73968d0ce4c86b771c9cf519d4

commit 84e76b1c4c673f73968d0ce4c86b771c9cf519d4
Author:     Serge Gautherie <[email protected]>
AuthorDate: Thu Feb 7 16:57:56 2019 +0100
Commit:     Hermès BÉLUSCA - MAÏTO <[email protected]>
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
     }
 
     //

Reply via email to