diff options
author | Olivier Martin <olivier.martin@arm.com> | 2014-04-02 17:32:29 +0000 |
---|---|---|
committer | oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> | 2014-04-02 17:32:29 +0000 |
commit | d8dc9f0af56c68492d8a1be52efc1a711d3497f4 (patch) | |
tree | 09f1b5e90b21a34c2b16f1721408b3d441c9f15d /ArmPkg/Library/BdsLib | |
parent | e3ff137e3652a85944ba1ba91ad61f09ef1ff248 (diff) | |
download | edk2-platforms-d8dc9f0af56c68492d8a1be52efc1a711d3497f4.tar.xz |
ArmPkg: Fixed GetEnvironmentVariable() when the UEFI Variable did not exist
The function was allocating a buffer for the read value from the UEFI Variable.
But it was returning the pointer of the default value when the variable was
not present.
It could cause error when the default value and the returned value were free
when these addresses were the same (double FreePool on the same address).
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15427 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPkg/Library/BdsLib')
-rw-r--r-- | ArmPkg/Library/BdsLib/BdsHelper.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/ArmPkg/Library/BdsLib/BdsHelper.c b/ArmPkg/Library/BdsLib/BdsHelper.c index fb2ac9b806..1d4aa35728 100644 --- a/ArmPkg/Library/BdsLib/BdsHelper.c +++ b/ArmPkg/Library/BdsLib/BdsHelper.c @@ -331,7 +331,7 @@ GetEnvironmentVariable ( *Size,
DefaultValue
);
- *Value = DefaultValue;
+ *Value = AllocateCopyPool (*Size, DefaultValue);
} else {
return EFI_NOT_FOUND;
}
@@ -352,7 +352,7 @@ GetEnvironmentVariable ( *Size = VariableSize;
}
} else {
- *Value = DefaultValue;
+ *Value = AllocateCopyPool (*Size, DefaultValue);
return Status;
}
|