IntelFrameworkModulePkg: Fix misuses of AllocateCopyPool
authorJian J Wang <jian.j.wang@intel.com>
Wed, 8 Nov 2017 02:09:54 +0000 (10:09 +0800)
committerStar Zeng <star.zeng@intel.com>
Wed, 8 Nov 2017 09:13:04 +0000 (17:13 +0800)
commit5df73e2cc8e39da97d56da058667607f1c43acac
treef6119d0a2b25666205bc92748514d3f3d3aac4ac
parent2a6ede28fd8efd3051794e1f2727a692d2725fe9
IntelFrameworkModulePkg: Fix misuses of AllocateCopyPool

AllocateCopyPool(AllocationSize, *Buffer) will copy "AllocationSize" bytes of
memory from old "Buffer" to new allocated one. If "AllocationSize" is bigger
than size of "Buffer", heap memory overflow occurs during copy.

One solution is to allocate pool first then copy the necessary bytes to new
memory. Another is using ReallocatePool instead if old buffer will be freed
on spot.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Bi Dandan <dandan.bi@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Bi Dandan <dandan.bi@intel.com>
IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c