]> git.proxmox.com Git - mirror_edk2.git/blobdiff - CryptoPkg/Library/BaseCryptLib/SysCall/RuntimeMemAllocation.c
CryptoPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / CryptoPkg / Library / BaseCryptLib / SysCall / RuntimeMemAllocation.c
index feaa37145e99cb7eb6e4e6e66978eaf2af13ba69..3e12a0500afea8a9ceeee3e914a0b9ae858419b2 100644 (file)
@@ -2,20 +2,15 @@
   Light-weight Memory Management Routines for OpenSSL-based Crypto\r
   Library at Runtime Phase.\r
 \r
-Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
-#include <OpenSslSupport.h>\r
+#include <CrtLibSupport.h>\r
 #include <Library/UefiBootServicesTableLib.h>\r
 #include <Library/UefiRuntimeLib.h>\r
+#include <Library/MemoryAllocationLib.h>\r
 #include <Guid/EventGroup.h>\r
 \r
 //----------------------------------------------------------------\r
@@ -140,6 +135,12 @@ LookupFreeMemRegion (
 \r
   StartPageIndex = RT_SIZE_TO_PAGES (mRTPageTable->LastEmptyPageOffset);\r
   ReqPages       = RT_SIZE_TO_PAGES (AllocationSize);\r
+  if (ReqPages > mRTPageTable->PageCount) {\r
+    //\r
+    // No enough region for object allocation.\r
+    //\r
+    return (UINTN)(-1);\r
+  }\r
 \r
   //\r
   // Look up the free memory region with in current memory map table.\r
@@ -175,6 +176,12 @@ LookupFreeMemRegion (
   // Look up the free memory region from the beginning of the memory table\r
   // until the StartCursorOffset\r
   //\r
+  if (ReqPages > StartPageIndex) {\r
+    //\r
+    // No enough region for object allocation.\r
+    //\r
+    return (UINTN)(-1);\r
+  }\r
   for (Index = 0; Index < (StartPageIndex - ReqPages); ) {\r
     //\r
     // Check Consecutive ReqPages Pages.\r