diff options
Diffstat (limited to 'MdeModulePkg/Universal/PCD/Dxe/Service.c')
-rw-r--r-- | MdeModulePkg/Universal/PCD/Dxe/Service.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/MdeModulePkg/Universal/PCD/Dxe/Service.c b/MdeModulePkg/Universal/PCD/Dxe/Service.c index fc6f6b4414..5d4fbbc082 100644 --- a/MdeModulePkg/Universal/PCD/Dxe/Service.c +++ b/MdeModulePkg/Universal/PCD/Dxe/Service.c @@ -740,8 +740,14 @@ SetWorker ( //
ASSERT (TokenNumber + 1 < PCD_TOTAL_TOKEN_NUMBER + 1);
- if ((!PtrType) && (*Size != DxePcdGetSize (TokenNumber + 1))) {
- return EFI_INVALID_PARAMETER;
+ if (PtrType) {
+ if (*Size > DxePcdGetSize (TokenNumber + 1)) {
+ return EFI_INVALID_PARAMETER;
+ }
+ } else {
+ if (*Size != DxePcdGetSize (TokenNumber + 1)) {
+ return EFI_INVALID_PARAMETER;
+ }
}
//
|