X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FLibrary%2FBaseMemoryLibSse2%2FSetMem32Wrapper.c;h=425840682d2ca589f0a0997be54e938073c1ac60;hb=30817eb4e418ea36a7245fddb2efdeab9526f455;hp=1ae7acb0132bf8bad4c1e8f2e638603b344f896e;hpb=533f039eb0bd2a1d5e7f11debb1379b048630021;p=mirror_edk2.git diff --git a/MdePkg/Library/BaseMemoryLibSse2/SetMem32Wrapper.c b/MdePkg/Library/BaseMemoryLibSse2/SetMem32Wrapper.c index 1ae7acb013..425840682d 100644 --- a/MdePkg/Library/BaseMemoryLibSse2/SetMem32Wrapper.c +++ b/MdePkg/Library/BaseMemoryLibSse2/SetMem32Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 32-bits in for Length bytes of Buffer. - If Buffer is NULL and Length > 0, then ASSERT(). + If Length > 0 and Buffer is NULL, then ASSERT(). If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). If Buffer is not aligned on a 32-bit boundary, then ASSERT(). If Length is not aligned on a 32-bit boundary, then ASSERT(). @@ -41,24 +41,25 @@ @param Length Number of bytes in Buffer to fill. @param Value Value with which to fill Length bytes of Buffer. - @return Buffer + @return Buffer. **/ VOID * EFIAPI SetMem32 ( - OUT VOID *Buffer, - IN UINTN Length, - IN UINT32 Value + OUT VOID *Buffer, + IN UINTN Length, + IN UINT32 Value ) { - ASSERT (!(Buffer == NULL && Length > 0)); - ASSERT (Length <= MAX_ADDRESS - (UINTN)Buffer + 1); + if (Length == 0) { + return Buffer; + } + + ASSERT (Buffer != NULL); + ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer)); ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0); ASSERT ((Length & (sizeof (Value) - 1)) == 0); - if ((Length /= sizeof (Value)) == 0) { - return Buffer; - } - return InternalMemSetMem32 (Buffer, Length, Value); + return InternalMemSetMem32 (Buffer, Length / sizeof (Value), Value); }