]> git.proxmox.com Git - mirror_edk2.git/commitdiff
1, For Pcd_PPI, UnregistedCallBack should return EFI_INVALID_PARAMETER if Callback...
authorklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 18 Mar 2010 06:24:53 +0000 (06:24 +0000)
committerklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 18 Mar 2010 06:24:53 +0000 (06:24 +0000)
2, PCD_PPI/PROTOCOL should return EFI_INVALID_PARAMETER if size is unmatched

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10276 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/PCD/Dxe/Service.c
MdeModulePkg/Universal/PCD/Pei/Service.c

index fc6f6b4414f82667a03f0ea46a1e6c37b762eb17..5d4fbbc082a91058c4c05c6644fd0e999c366fc8 100644 (file)
@@ -740,8 +740,14 @@ SetWorker (
   //\r
   ASSERT (TokenNumber + 1 < PCD_TOTAL_TOKEN_NUMBER + 1);\r
 \r
-  if ((!PtrType) && (*Size != DxePcdGetSize (TokenNumber + 1))) {\r
-    return EFI_INVALID_PARAMETER;\r
+  if (PtrType) {\r
+    if (*Size > DxePcdGetSize (TokenNumber + 1)) {\r
+      return EFI_INVALID_PARAMETER;\r
+    }\r
+  } else {\r
+    if (*Size != DxePcdGetSize (TokenNumber + 1)) {\r
+      return EFI_INVALID_PARAMETER;\r
+    }\r
   }\r
 \r
   //\r
index 66e72f75e78c44b22ded2274b8ac55c664bb7f5e..4f1511f4270c56362a0ae034c4177d3e43d245f8 100644 (file)
@@ -28,6 +28,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
   @retval EFI_NOT_FOUND If the PCD Entry is not found according to Token Number and GUID space.\r
   @retval EFI_OUT_OF_RESOURCES If the callback function can't be registered because there is not free\r
                                 slot left in the CallbackFnTable.\r
+  @retval EFI_INVALID_PARAMETER If the callback function want to be de-registered can not be found.\r
 **/\r
 EFI_STATUS\r
 PeiRegisterCallBackWorker (\r
@@ -100,7 +101,7 @@ PeiRegisterCallBackWorker (
     }\r
   }\r
 \r
-  return Register? EFI_OUT_OF_RESOURCES : EFI_NOT_FOUND;\r
+  return Register? EFI_OUT_OF_RESOURCES : EFI_INVALID_PARAMETER;\r
 \r
 }\r
 \r
@@ -384,8 +385,14 @@ SetWorker (
 \r
   LocalTokenNumber = PeiPcdDb->Init.LocalTokenNumberTable[TokenNumber];\r
 \r
-  if ((!PtrType) && (PeiPcdGetSize(TokenNumber + 1) != *Size)) {\r
-    return EFI_INVALID_PARAMETER;\r
+  if (PtrType) {\r
+    if (*Size > PeiPcdGetSize (TokenNumber + 1)) {\r
+      return EFI_INVALID_PARAMETER;\r
+    }\r
+  } else {\r
+    if (*Size != PeiPcdGetSize (TokenNumber + 1)) {\r
+      return EFI_INVALID_PARAMETER;\r
+    }\r
   }\r
 \r
   //\r