]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c
MdeModulePkg/RegularExpressionDxe: Fix memory assert in FreePool()
[mirror_edk2.git] / MdeModulePkg / Universal / RegularExpressionDxe / OnigurumaUefiPort.c
index 9aa7b0a68eefdd203db0b8f3befcc2c98d20ac09..4659c4473e954cf213b0ce921bca31b158e623c2 100644 (file)
@@ -2,7 +2,7 @@
 \r
   Module to rewrite stdlib references within Oniguruma\r
 \r
-  (C) Copyright 2014-2015 Hewlett Packard Enterprise Development LP<BR>\r
+  (C) Copyright 2014-2021 Hewlett Packard Enterprise Development LP<BR>\r
   Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
 \r
   SPDX-License-Identifier: BSD-2-Clause-Patent\r
@@ -96,3 +96,20 @@ void* memset (void *dest, char ch, unsigned int count)
   return SetMem (dest, count, ch);\r
 }\r
 \r
+void free(void *ptr)\r
+{\r
+  VOID         *EvalOnce;\r
+  ONIGMEM_HEAD *PoolHdr;\r
+\r
+  EvalOnce = ptr;\r
+  if (EvalOnce == NULL) {\r
+    return;\r
+  }\r
+\r
+  PoolHdr = (ONIGMEM_HEAD *)EvalOnce - 1;\r
+  if (PoolHdr->Signature == ONIGMEM_HEAD_SIGNATURE) {\r
+    FreePool (PoolHdr);\r
+  } else {\r
+    FreePool (EvalOnce);\r
+  }\r
+}\r