\r
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
ControllerNameStringSize = FPDT_MAX_PERF_RECORD_SIZE - (*Length) - 1;\r
}\r
\r
- UnicodeStrToAsciiStrS(StringPtr, ComponentNameString, ControllerNameStringSize);\r
+ UnicodeStrnToAsciiStrS(StringPtr, ControllerNameStringSize - 1, ComponentNameString, ControllerNameStringSize, &ControllerNameStringSize);\r
\r
//\r
// Add a space in the end of the ControllerName\r
AsciiStringPtr = ComponentNameString;\r
}\r
\r
- UnicodeStrToAsciiStrS(StringPtr, AsciiStringPtr, DevicePathStringSize);\r
+ UnicodeStrnToAsciiStrS(StringPtr, DevicePathStringSize - 1, AsciiStringPtr, DevicePathStringSize, &DevicePathStringSize);\r
*Length += (UINT8)DevicePathStringSize;\r
return EFI_SUCCESS;\r
}\r
switch (PerfId) {\r
case MODULE_START_ID:\r
case MODULE_END_ID:\r
- GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier, ModuleName, sizeof (ModuleName), &ModuleGuid);\r
+ GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName, sizeof (ModuleName), &ModuleGuid);\r
StringPtr = ModuleName;\r
//\r
// Cache the offset of start image start record and use to update the start image end record if needed.\r
\r
case MODULE_LOADIMAGE_START_ID:\r
case MODULE_LOADIMAGE_END_ID:\r
- GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier, ModuleName, sizeof (ModuleName), &ModuleGuid);\r
+ GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName, sizeof (ModuleName), &ModuleGuid);\r
StringPtr = ModuleName;\r
if (PerfId == MODULE_LOADIMAGE_START_ID) {\r
mLoadImageCount ++;\r
case MODULE_DB_SUPPORT_END_ID:\r
case MODULE_DB_STOP_START_ID:\r
case MODULE_DB_STOP_END_ID:\r
- GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier, ModuleName, sizeof (ModuleName), &ModuleGuid);\r
+ GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName, sizeof (ModuleName), &ModuleGuid);\r
StringPtr = ModuleName;\r
if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
FpdtRecordPtr.GuidQwordEvent->Header.Type = FPDT_GUID_QWORD_EVENT_TYPE;\r
break;\r
\r
case MODULE_DB_END_ID:\r
- GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier, ModuleName, sizeof (ModuleName), &ModuleGuid);\r
+ GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName, sizeof (ModuleName), &ModuleGuid);\r
StringPtr = ModuleName;\r
if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
FpdtRecordPtr.GuidQwordStringEvent->Header.Type = FPDT_GUID_QWORD_STRING_EVENT_TYPE;\r
case PERF_EVENTSIGNAL_END_ID:\r
case PERF_CALLBACK_START_ID:\r
case PERF_CALLBACK_END_ID:\r
- if (String == NULL) {\r
+ if (String == NULL || Guid == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
- //\r
- // Cache the event guid in string event record when PcdEdkiiFpdtStringRecordEnableOnly == TRUE\r
- //\r
- CopyGuid (&ModuleGuid, Guid);\r
StringPtr = String;\r
+ if (AsciiStrLen (String) == 0) {\r
+ StringPtr = "unknown name";\r
+ }\r
if (!PcdGetBool (PcdEdkiiFpdtStringRecordEnableOnly)) {\r
FpdtRecordPtr.DualGuidStringEvent->Header.Type = FPDT_DUAL_GUID_STRING_EVENT_TYPE;\r
FpdtRecordPtr.DualGuidStringEvent->Header.Length = sizeof (FPDT_DUAL_GUID_STRING_EVENT_RECORD);\r
case PERF_INMODULE_END_ID:\r
case PERF_CROSSMODULE_START_ID:\r
case PERF_CROSSMODULE_END_ID:\r
- GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier, ModuleName, sizeof (ModuleName), &ModuleGuid);\r
+ GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName, sizeof (ModuleName), &ModuleGuid);\r
if (String != NULL) {\r
StringPtr = String;\r
} else {\r
\r
default:\r
if (Attribute != PerfEntry) {\r
- GetModuleInfoFromHandle ((EFI_HANDLE *)CallerIdentifier, ModuleName, sizeof (ModuleName), &ModuleGuid);\r
+ GetModuleInfoFromHandle ((EFI_HANDLE)CallerIdentifier, ModuleName, sizeof (ModuleName), &ModuleGuid);\r
if (String != NULL) {\r
StringPtr = String;\r
} else {\r
FpdtRecordPtr.DynamicStringEvent->Header.Revision = FPDT_RECORD_REVISION_1;\r
FpdtRecordPtr.DynamicStringEvent->ProgressID = PerfId;\r
FpdtRecordPtr.DynamicStringEvent->Timestamp = TimeStamp;\r
- CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, &ModuleGuid, sizeof (FpdtRecordPtr.DynamicStringEvent->Guid));\r
+ if (Guid != NULL) {\r
+ //\r
+ // Cache the event guid in string event record.\r
+ //\r
+ CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, Guid, sizeof (FpdtRecordPtr.DynamicStringEvent->Guid));\r
+ } else {\r
+ CopyMem (&FpdtRecordPtr.DynamicStringEvent->Guid, &ModuleGuid, sizeof (FpdtRecordPtr.DynamicStringEvent->Guid));\r
+ }\r
if (AsciiStrLen (StringPtr) == 0) {\r
StringPtr = "unknown name";\r
}\r