X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FLibrary%2FUefiMemoryLib%2FSetMem16Wrapper.c;h=fd3720cd51e17d41f384d476c9b326b8cfef5d41;hb=4ba61e5e2a1b3cec7faaad36c252738f6f57f8a6;hp=3acbdac4364a2cae7687fb0bf22013c524ccfee2;hpb=49c80af423d4eecd932aa9831fbba3f74ea4a424;p=mirror_edk2.git diff --git a/MdePkg/Library/UefiMemoryLib/SetMem16Wrapper.c b/MdePkg/Library/UefiMemoryLib/SetMem16Wrapper.c index 3acbdac436..fd3720cd51 100644 --- a/MdePkg/Library/UefiMemoryLib/SetMem16Wrapper.c +++ b/MdePkg/Library/UefiMemoryLib/SetMem16Wrapper.c @@ -32,7 +32,7 @@ Value, and returns Buffer. Value is repeated every 16-bits in for Length bytes of Buffer. - If Buffer is NULL and Length > 0, then ASSERT(). + If Length > 0 and Buffer is NULL and Length > 0, then ASSERT(). If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). If Buffer is not aligned on a 16-bit boundary, then ASSERT(). If Length is not aligned on a 16-bit boundary, then ASSERT(). @@ -52,13 +52,14 @@ SetMem16 ( IN UINT16 Value ) { - ASSERT (Buffer != NULL); - ASSERT (Length <= MAX_ADDRESS - (UINTN)Buffer + 1); - ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) != 0); - ASSERT ((Length & (sizeof (Value) - 1)) != 0); - - if ((Length /= sizeof (Value)) == 0) { + if (Length == 0) { return Buffer; } - return InternalMemSetMem16 (Buffer, Length, Value); + + ASSERT (Buffer != NULL); + ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer)); + ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0); + ASSERT ((Length & (sizeof (Value) - 1)) == 0); + + return InternalMemSetMem16 (Buffer, Length / sizeof (Value), Value); }