From eb928b17c5c4a3918ba1d16aed5fbd797e69e75e Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Sat, 9 Sep 2017 23:41:01 +0200 Subject: [PATCH] MdeModulePkg/UdfDxe: replace zero-init of local variables with ZeroMem() In edk2, initialization of local variables is forbidden, both for stylistic reasons and because such initialization may generate calls to compiler intrinsics. For the following initialization in UdfRead(): CHAR16 FileName[UDF_FILENAME_LENGTH] = { 0 }; clang-3.8 generates a memset() call, when building UdfDxe for IA32, which then fails to link. Replace the initialization with ZeroMem(). Do the same to "FilePath" in UdfOpen(). Cc: Ard Biesheuvel Cc: Eric Dong Cc: Paulo Alcantara Cc: Ruiyu Ni Cc: Star Zeng Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek Reviewed-by: Star Zeng Reviewed-by: Paulo Alcantara Reviewed-by: Ard Biesheuvel --- MdeModulePkg/Universal/Disk/UdfDxe/File.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/MdeModulePkg/Universal/Disk/UdfDxe/File.c b/MdeModulePkg/Universal/Disk/UdfDxe/File.c index 8b9339567f..e7159ff861 100644 --- a/MdeModulePkg/Universal/Disk/UdfDxe/File.c +++ b/MdeModulePkg/Universal/Disk/UdfDxe/File.c @@ -176,11 +176,12 @@ UdfOpen ( EFI_STATUS Status; PRIVATE_UDF_FILE_DATA *PrivFileData; PRIVATE_UDF_SIMPLE_FS_DATA *PrivFsData; - CHAR16 FilePath[UDF_PATH_LENGTH] = { 0 }; + CHAR16 FilePath[UDF_PATH_LENGTH]; UDF_FILE_INFO File; PRIVATE_UDF_FILE_DATA *NewPrivFileData; CHAR16 *TempFileName; + ZeroMem (FilePath, sizeof FilePath); OldTpl = gBS->RaiseTPL (TPL_CALLBACK); if (This == NULL || NewHandle == NULL || FileName == NULL) { @@ -324,10 +325,11 @@ UdfRead ( UDF_FILE_INFO FoundFile; UDF_FILE_IDENTIFIER_DESCRIPTOR *NewFileIdentifierDesc; VOID *NewFileEntryData; - CHAR16 FileName[UDF_FILENAME_LENGTH] = { 0 }; + CHAR16 FileName[UDF_FILENAME_LENGTH]; UINT64 FileSize; UINT64 BufferSizeUint64; + ZeroMem (FileName, sizeof FileName); OldTpl = gBS->RaiseTPL (TPL_CALLBACK); if (This == NULL || BufferSize == NULL || (*BufferSize != 0 && -- 2.39.2