Ard: Could you help apply this changes for other BaseMemoryLib instances in MdePkg?
Thanks Liming > -----Original Message----- > From: Ard Biesheuvel [mailto:[email protected]] > Sent: Friday, November 04, 2016 2:18 AM > To: [email protected]; Kinney, Michael D > <[email protected]>; Gao, Liming <[email protected]> > Cc: [email protected]; Carsey, Jaben <[email protected]>; Ard > Biesheuvel <[email protected]> > Subject: [PATCH v2] MdePkg/BaseMemoryLibOptDxe: check for zero length > in ZeroMem () > > Unlike other string functions in this library, ZeroMem () does not > return early when the length of the input buffer is 0. So add the > same to ZeroMem () as well. > > This fixes an issue with the ARM implementation, whose > InternalMemZeroMem > code does not expect a length of 0, and always writes at least a single > byte. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel <[email protected]> > --- > MdePkg/Library/BaseMemoryLibOptDxe/ZeroMemWrapper.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/ZeroMemWrapper.c > b/MdePkg/Library/BaseMemoryLibOptDxe/ZeroMemWrapper.c > index 2a0a038fd6c5..9dd0b45e188e 100644 > --- a/MdePkg/Library/BaseMemoryLibOptDxe/ZeroMemWrapper.c > +++ b/MdePkg/Library/BaseMemoryLibOptDxe/ZeroMemWrapper.c > @@ -46,7 +46,11 @@ ZeroMem ( > IN UINTN Length > ) > { > - ASSERT (!(Buffer == NULL && Length > 0)); > + if (Length == 0) { > + return Buffer; > + } > + > + ASSERT (Buffer != NULL); > ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1)); > return InternalMemZeroMem (Buffer, Length); > } > -- > 2.7.4 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

