Hi all, Please review this patch when you're free, thanks.
Regards Wenyi On 2020/9/1 18:58, Wenyi Xie wrote: > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2947 > > When calculating memory regions and store the information in the > gSystemMemory in file WinHost.c, the code below will cause overflow, > because _wtoi (MemorySizeStr) return an int value and SIZE_1MB is > also an int value, if MemorySizeStr is lager for example 2048, then > result of multiplication will overflow. > > for (Index = 0, Done = FALSE; !Done; Index++) { > // > // Save the size of the memory and make a Unicode filename SystemMemory00 > // > gSystemMemory[Index].Size = _wtoi (MemorySizeStr) * SIZE_1MB; > > Cc: Jordan Justen <jordan.l.jus...@intel.com> > Cc: Andrew Fish <af...@apple.com> > Cc: Ray Ni <ray...@intel.com> > Signed-off-by: Wenyi Xie <xiewen...@huawei.com> > --- > EmulatorPkg/Win/Host/WinHost.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/EmulatorPkg/Win/Host/WinHost.c b/EmulatorPkg/Win/Host/WinHost.c > index 0838c56ddea8..876cb8d4be8b 100644 > --- a/EmulatorPkg/Win/Host/WinHost.c > +++ b/EmulatorPkg/Win/Host/WinHost.c > @@ -577,7 +577,7 @@ Returns: > // > // Save the size of the memory and make a Unicode filename > SystemMemory00, ... > // > - gSystemMemory[Index].Size = _wtoi (MemorySizeStr) * SIZE_1MB; > + gSystemMemory[Index].Size = ((UINT64)_wtoi (MemorySizeStr)) * > ((UINT64)SIZE_1MB); > > // > // Find the next region > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#65425): https://edk2.groups.io/g/devel/message/65425 Mute This Topic: https://groups.io/mt/76553535/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-