audk/MdeModulePkg/Universal
Hao Wu 809e2bbf41 MdeModulePkg: Refine type cast for pointer subtraction
For pointer subtraction, the result is of type "ptrdiff_t". According to
the C11 standard (Committee Draft - April 12, 2011):

"When two pointers are subtracted, both shall point to elements of the
same array object, or one past the last element of the array object; the
result is the difference of the subscripts of the two array elements. The
size of the result is implementation-defined, and its type (a signed
integer type) is ptrdiff_t defined in the <stddef.h> header. If the result
is not representable in an object of that type, the behavior is
undefined."

In our codes, there are cases that the pointer subtraction is not
performed by pointers to elements of the same array object. This might
lead to potential issues, since the behavior is undefined according to C11
standard.

Also, since the size of type "ptrdiff_t" is implementation-defined. Some
static code checkers may warn that the pointer subtraction might underflow
first and then being cast to a bigger size. For example:

UINT8  *Ptr1, *Ptr2;
UINTN  PtrDiff;
...
PtrDiff = (UINTN) (Ptr1 - Ptr2);

The commit will refine the pointer subtraction expressions by casting each
pointer to UINTN first and then perform the subtraction:

PtrDiff = (UINTN) Ptr1 - (UINTN) Ptr2;

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
2017-03-06 14:14:09 +08:00
..
Acpi MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe: Add support for PCD PcdPteMemoryEncryptionAddressOrMask 2017-03-01 12:52:58 +08:00
BdsDxe MdeModulePkg/BdsDxe: Initialize gConnectConInEvent earlier 2016-12-08 10:11:01 +08:00
BootManagerPolicyDxe MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
CapsulePei MdeModulePkg: Replace [Ascii|Unicode]ValueToString 2017-03-02 09:58:11 +08:00
CapsuleRuntimeDxe MdeModulePkg: Replace [Ascii|Unicode]ValueToString 2017-03-02 09:58:11 +08:00
Console MdeModulePkg: Use EfiEventEmptyFunction from UefiLib 2017-01-20 15:51:18 +08:00
DebugPortDxe MdeModulePkg: Refine type cast for pointer subtraction 2017-03-06 14:14:09 +08:00
DebugSupportDxe MdeModulePkg DebugSupportDxe: Convert X64/AsmFuncs.asm to NASM 2016-06-28 09:51:57 +08:00
DevicePathDxe MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
Disk MdeModulePkg/Universal: Fix typos in comments 2016-10-27 09:11:19 +08:00
DisplayEngineDxe MdeMoudlePkg/DisplayEngine: Fix incorrect index used in array "InputText" 2017-02-21 19:19:05 +08:00
DriverHealthManagerDxe MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
DriverSampleDxe MdeModulePkg: Replace [Ascii|Unicode]ValueToString 2017-03-02 09:58:11 +08:00
EbcDxe MdeModulePkg/EbcDxe: use EfiBootServicesCode memory for thunks 2017-02-28 14:59:50 +00:00
EsrtDxe MdeModulePkg/Esrt: Add ESRT_FW_TYPE_SYSTEMFIRMWARE check. 2016-11-08 22:37:03 +08:00
FaultTolerantWriteDxe MdeModulePkg: Refine type cast for pointer subtraction 2017-03-06 14:14:09 +08:00
FaultTolerantWritePei MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
FileExplorerDxe MdeModulePkg FileExplorerDxe: Change file format which has mixed file format. 2015-12-16 03:22:39 +00:00
FvSimpleFileSystemDxe MdeModulePkg/FvSimpleFileSystem: fix assertions when FV is empty 2016-08-03 09:48:18 +08:00
HiiDatabaseDxe MdeModulePkg: Refine type cast for pointer subtraction 2017-03-06 14:14:09 +08:00
HiiResourcesSampleDxe MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
LegacyRegion2Dxe MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
LoadFileOnFv2 MdeModulePkg LoadFileOnFv2: Correct the parameter name in function comment 2016-10-25 11:53:59 +08:00
LockBox/SmmLockBox MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
MemoryTest MdeModulePkg/Universal: Fix typos in comments 2016-10-27 09:11:19 +08:00
Metronome MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
MonotonicCounterRuntimeDxe MdeModulePkg: Minor comments update to GetNextHighMonotonicCount() 2016-01-29 09:26:49 +00:00
Network MdeModulePkg: Replace [Ascii|Unicode]ValueToString 2017-03-02 09:58:11 +08:00
PCD MdeModulePkg/PCD: Fix PcdGetNextToken may get a wrong PCD token 2016-11-03 11:00:52 +08:00
PcatSingleSegmentPciCfg2Pei MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
PlatformDriOverrideDxe MdeModulePkg/Universal: Fix typos in comments 2016-10-27 09:11:19 +08:00
PrintDxe MdeModulePkg/PrintDxe: Handle the deprecation of [A|U]ValueToString 2017-03-02 09:59:06 +08:00
PropertiesTableAttributesDxe MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
RegularExpressionDxe MdeModulePkg/RegularExpressionDxe: remove module-local ARRAY_SIZE macro 2016-10-27 10:50:09 +02:00
ReportStatusCodeRouter MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
ResetSystemRuntimeDxe MdeModulePkg/ResetSystemRuntimeDxe: Support EfiResetPlatformSpecific 2016-09-02 10:07:17 +08:00
SectionExtractionDxe MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
SectionExtractionPei MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
SecurityStubDxe MdeModulePkg/SecurityStubDxe: Report failure if image is load earlier 2016-11-10 15:58:00 +08:00
SerialDxe MdeModulePkg/SerialDxe: Set FIFO depth with PCD 2016-03-29 15:00:30 +08:00
SetupBrowserDxe MdeModulePkg: Replace [Ascii|Unicode]ValueToString 2017-03-02 09:58:11 +08:00
SmbiosDxe MdeModulePkg SmbiosDxe: Use definition in IndustryStandard/Smbios.h 2016-07-29 10:10:56 +08:00
SmbiosMeasurementDxe MdeModulePkg SmbiosMeasurementDxe: Add NominalSpeed in Type 27 to black list 2016-09-02 10:16:39 +08:00
SmmCommunicationBufferDxe MdeModulePkg: Add new driver to publish EDKII_PI_SMM_COMMUNICATION_REGION_TABLE. 2016-04-29 12:49:09 +08:00
StatusCodeHandler MdeModulePkg/MemoryStatusCode: Expose the DXE memory status code table. 2016-06-29 09:46:51 +08:00
TimestampDxe MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
Variable MdeModulePkg: Refine type cast for pointer subtraction 2017-03-06 14:14:09 +08:00
WatchdogTimerDxe MdeModulePkg/Universal: Fix typos in comments 2016-10-27 09:11:19 +08:00