[edk2-devel] [PATCH 07/35] MdeModulePkg: fix cast in GetModuleInfoFromHandle() calls

Dandan Bi dandan.bi at intel.com
Thu Sep 19 01:46:45 UTC 2019


Reviewed-by: Dandan Bi <dandan.bi at intel.com>

Thanks,
Dandan

> -----Original Message-----
> From: Laszlo Ersek [mailto:lersek at redhat.com]
> Sent: Wednesday, September 18, 2019 3:49 AM
> To: edk2-devel-groups-io <devel at edk2.groups.io>
> Cc: Bi, Dandan <dandan.bi at intel.com>; Dong, Eric <eric.dong at intel.com>;
> Wu, Hao A <hao.a.wu at intel.com>; Wang, Jian J <jian.j.wang at intel.com>;
> Gao, Liming <liming.gao at intel.com>; Ni, Ray <ray.ni at intel.com>
> Subject: [PATCH 07/35] MdeModulePkg: fix cast in
> GetModuleInfoFromHandle() calls
> 
> GetModuleInfoFromHandle() takes an EFI_HANDLE -- (VOID*) -- as first
> parameter, but InsertFpdtRecord() passes (EFI_HANDLE*) -- (VOID**).
> (VOID**) converts silently to (VOID*), which is why the wrong cast is masked.
> 
> Note that the *value* that is passed is alright -- therefore this patch does not
> change behavior --, it's just semantically wrong to pass an
> (EFI_HANDLE*) where an EFI_HANDLE is expected.
> 
> Cc: Dandan Bi <dandan.bi at intel.com>
> Cc: Eric Dong <eric.dong at intel.com>
> Cc: Hao A Wu <hao.a.wu at intel.com>
> Cc: Jian J Wang <jian.j.wang at intel.com>
> Cc: Liming Gao <liming.gao at intel.com>
> Cc: Ray Ni <ray.ni at intel.com>
> Signed-off-by: Laszlo Ersek <lersek at redhat.com>
> ---
> 
> Notes:
>     lightly tested, as DxeCorePerformanceLib is linked into ArmVirtQemu's
>     DxeCore
> 
> 
> MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c
> | 12 ++++++------
> MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLi
> b.c |  8 ++++----
>  2 files changed, 10 insertions(+), 10 deletions(-)
> 
> diff --git
> a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLi
> b.c
> b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLi
> b.c
> index 0d507c445210..f500e20b320b 100644
> ---
> a/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLi
> b.c
> +++
> b/MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLi
> b.c
> @@ -998,7 +998,7 @@ InsertFpdtRecord (
>    switch (PerfId) {
>    case MODULE_START_ID:
>    case MODULE_END_ID:
> -    GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier,
> ModuleName, sizeof (ModuleName), &ModuleGuid);
> +    GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName,
> + sizeof (ModuleName), &ModuleGuid);
>      StringPtr = ModuleName;
>      //
>      // Cache the offset of start image start record and use to update the start
> image end record if needed.
> @@ -1031,7 +1031,7 @@ InsertFpdtRecord (
> 
>    case MODULE_LOADIMAGE_START_ID:
>    case MODULE_LOADIMAGE_END_ID:
> -    GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier,
> ModuleName, sizeof (ModuleName), &ModuleGuid);
> +    GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName,
> + sizeof (ModuleName), &ModuleGuid);
>      StringPtr = ModuleName;
>      if (PerfId == MODULE_LOADIMAGE_START_ID) {
>        mLoadImageCount ++;
> @@ -1071,7 +1071,7 @@ InsertFpdtRecord (
>    case MODULE_DB_SUPPORT_END_ID:
>    case MODULE_DB_STOP_START_ID:
>    case MODULE_DB_STOP_END_ID:
> -    GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier,
> ModuleName, sizeof (ModuleName), &ModuleGuid);
> +    GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName,
> + sizeof (ModuleName), &ModuleGuid);
>      StringPtr = ModuleName;
>      if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {
>        FpdtRecordPtr.GuidQwordEvent->Header.Type           =
> FPDT_GUID_QWORD_EVENT_TYPE;
> @@ -1085,7 +1085,7 @@ InsertFpdtRecord (
>      break;
> 
>    case MODULE_DB_END_ID:
> -    GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier,
> ModuleName, sizeof (ModuleName), &ModuleGuid);
> +    GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName,
> + sizeof (ModuleName), &ModuleGuid);
>      StringPtr = ModuleName;
>      if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {
>        FpdtRecordPtr.GuidQwordStringEvent->Header.Type     =
> FPDT_GUID_QWORD_STRING_EVENT_TYPE;
> @@ -1131,7 +1131,7 @@ InsertFpdtRecord (
>    case PERF_INMODULE_END_ID:
>    case PERF_CROSSMODULE_START_ID:
>    case PERF_CROSSMODULE_END_ID:
> -    GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier,
> ModuleName, sizeof (ModuleName), &ModuleGuid);
> +    GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName,
> + sizeof (ModuleName), &ModuleGuid);
>      if (String != NULL) {
>        StringPtr = String;
>      } else {
> @@ -1153,7 +1153,7 @@ InsertFpdtRecord (
> 
>    default:
>      if (Attribute != PerfEntry) {
> -      GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier,
> ModuleName, sizeof (ModuleName), &ModuleGuid);
> +      GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier,
> + ModuleName, sizeof (ModuleName), &ModuleGuid);
>        if (String != NULL) {
>          StringPtr = String;
>        } else {
> diff --git
> a/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformance
> Lib.c
> b/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformance
> Lib.c
> index 5f07464c4ec7..b4f22c14ae73 100644
> ---
> a/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformance
> Lib.c
> +++
> b/MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformance
> Lib.c
> @@ -587,7 +587,7 @@ InsertFpdtRecord (
>    switch (PerfId) {
>    case MODULE_START_ID:
>    case MODULE_END_ID:
> -    GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier,
> ModuleName, sizeof (ModuleName), &ModuleGuid);
> +    GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName,
> + sizeof (ModuleName), &ModuleGuid);
>      StringPtr = ModuleName;
>      //
>      // Cache the offset of start image start record and use to update the start
> image end record if needed.
> @@ -612,7 +612,7 @@ InsertFpdtRecord (
> 
>    case MODULE_LOADIMAGE_START_ID:
>    case MODULE_LOADIMAGE_END_ID:
> -    GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier,
> ModuleName, sizeof (ModuleName), &ModuleGuid);
> +    GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName,
> + sizeof (ModuleName), &ModuleGuid);
>      StringPtr = ModuleName;
>      if (PerfId == MODULE_LOADIMAGE_START_ID) {
>        mLoadImageCount++;
> @@ -669,7 +669,7 @@ InsertFpdtRecord (
>    case PERF_INMODULE_END_ID:
>    case PERF_CROSSMODULE_START_ID:
>    case PERF_CROSSMODULE_END_ID:
> -    GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier,
> ModuleName, sizeof (ModuleName), &ModuleGuid);
> +    GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName,
> + sizeof (ModuleName), &ModuleGuid);
>      if (String != NULL) {
>        StringPtr = String;
>      } else {
> @@ -691,7 +691,7 @@ InsertFpdtRecord (
> 
>    default:
>      if (Attribute != PerfEntry) {
> -      GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier,
> ModuleName, sizeof (ModuleName), &ModuleGuid);
> +      GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier,
> + ModuleName, sizeof (ModuleName), &ModuleGuid);
>        if (String != NULL) {
>          StringPtr = String;
>        } else {
> --
> 2.19.1.3.g30247aa5d201
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#47517): https://edk2.groups.io/g/devel/message/47517
Mute This Topic: https://groups.io/mt/34180207/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list