PartitionValidGptTable(), PartitionCheckGptEntry() routine will accept disk\r
partition content and validate the GPT table and GPT entry.\r
\r
-Copyright (c) 2006 - 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) 2018 Qualcomm Datacenter Technologies, Inc.\r
+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
\r
@param[in] PartHeader Partition table header structure\r
@param[in] PartEntry The partition entry array\r
- @param[out] PEntryStatus the partition entry status array \r
+ @param[out] PEntryStatus the partition entry status array\r
recording the status of each partition\r
\r
**/\r
\r
GptValidStatus = EFI_NOT_FOUND;\r
\r
+ //\r
+ // Ensure the block size can hold the MBR\r
+ //\r
+ if (BlockSize < sizeof (MASTER_BOOT_RECORD)) {\r
+ return EFI_NOT_FOUND;\r
+ }\r
+\r
//\r
// Allocate a buffer for the Protective MBR\r
//\r
&PartitionInfo,\r
Entry->StartingLBA,\r
Entry->EndingLBA,\r
- BlockSize\r
+ BlockSize,\r
+ &Entry->PartitionTypeGUID\r
);\r
}\r
\r
\r
@param[in] PartHeader Partition table header structure\r
@param[in] PartEntry The partition entry array\r
- @param[out] PEntryStatus the partition entry status array \r
+ @param[out] PEntryStatus the partition entry status array\r
recording the status of each partition\r
\r
**/\r
\r
if ((Entry->Attributes & BIT1) != 0) {\r
//\r
- // If Bit 1 is set, this indicate that this is an OS specific GUID partition. \r
+ // If Bit 1 is set, this indicate that this is an OS specific GUID partition.\r
//\r
PEntryStatus[Index1].OsSpecific = TRUE;\r
}\r