From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mx.groups.io with SMTP id smtpd.web09.671.1667953328048291253 for ; Tue, 08 Nov 2022 16:22:08 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@linux.microsoft.com header.s=default header.b=OfrgAGz8; spf=pass (domain: linux.microsoft.com, ip: 13.77.154.182, mailfrom: mikuback@linux.microsoft.com) Received: from localhost.localdomain (unknown [47.201.8.94]) by linux.microsoft.com (Postfix) with ESMTPSA id CD29E20B9F80; Tue, 8 Nov 2022 16:22:06 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com CD29E20B9F80 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1667953327; bh=4sjaepy410Aora33MfccV68FG/57VBmUHaJLSFAqc7M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OfrgAGz8kCUmkZsCkHjx8HAp+vj76YSNcR1L2+FBTTbKfPlTVK22Z4TcexbE0rD+9 Dk6LjQF+rOqpc1rF90WXCUMBz6pEVUrEC9nO6Vvm+UXUe+0kN2g/wiujl+xMuNnKxI S5SXJhVigKcqnmrBI0mOdmNuA11uof2pbVtdI3Mw= From: "Michael Kubacki" To: devel@edk2.groups.io Cc: Bob Feng , Liming Gao , Yuwei Chen , Sean Brogan , Michael D Kinney Subject: [PATCH v2 1/2] BaseTools: Fix wrong type of arguments to formatting functions Date: Tue, 8 Nov 2022 19:21:40 -0500 Message-Id: <20221109002141.1804-2-mikuback@linux.microsoft.com> X-Mailer: git-send-email 2.28.0.windows.1 In-Reply-To: <20221109002141.1804-1-mikuback@linux.microsoft.com> References: <20221109002141.1804-1-mikuback@linux.microsoft.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Michael Kubacki Fixes issues found with the cpp/wrong-type-format-argument CodeQL rule in BaseTools. Reference: https://cwe.mitre.org/data/definitions/686.html The following CodeQL errors are resolved: 1. Check failure on line 1115 in BaseTools/Source/C/EfiRom/EfiRom.c - This argument should be of type 'int' but is of type 'char *'. - This argument should be of type 'int' but is of type 'signed char *'. 2. Check failure on line 359 in BaseTools/Source/C/GenFw/Elf32Convert.c - This argument should be of type 'CHAR8 *' but is of type 'unsigned int'. 3. Check failure on line 1841 in BaseTools/Source/C/GenFw/Elf64Convert.c - This argument should be of type 'unsigned int' but is of type 'unsigned long long'. 4. Check failure on line 1871 in BaseTools/Source/C/GenFw/Elf64Convert.c - This argument should be of type 'unsigned int' but is of type 'unsigned long long'. 5. Check failure on line 2400 in BaseTools/Source/C/GenFv/GenFvInternalLib.c - This argument should be of type 'unsigned long long' but is of type 'unsigned int'. 6. Check failure on line 1099 in BaseTools/Source/C/GenFw/Elf64Convert.c - This argument should be of type 'CHAR8 *' but is of type 'unsigned int'. 7. Check failure on line 1098 in BaseTools/Source/C/GenSec/GenSec.c - This argument should be of type 'CHAR8 *' but is of type 'char **'. 8. Check failure on line 911 in BaseTools/Source/C/GenSec/GenSec.c - This argument should be of type 'CHAR8 *' but is of type 'char **'. Cc: Bob Feng Cc: Liming Gao Cc: Yuwei Chen Cc: Sean Brogan Cc: Michael D Kinney Signed-off-by: Michael Kubacki Reviewed-by: Sean Brogan --- BaseTools/Source/C/EfiRom/EfiRom.c | 2 +- BaseTools/Source/C/GenFv/GenFvInternalLib.c | 2 +- BaseTools/Source/C/GenFw/Elf32Convert.c | 2 +- BaseTools/Source/C/GenFw/Elf64Convert.c | 6 +++--- BaseTools/Source/C/GenSec/GenSec.c | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/BaseTools/Source/C/EfiRom/EfiRom.c b/BaseTools/Source/C/EfiR= om/EfiRom.c index 2506f559d574..fa7bf0e62e6d 100644 --- a/BaseTools/Source/C/EfiRom/EfiRom.c +++ b/BaseTools/Source/C/EfiRom/EfiRom.c @@ -1112,7 +1112,7 @@ Routine Description: goto Done; } if (DebugLevel > 9) { - Error (NULL, 0, 2000, "Invalid option value", "Debug Level ran= ge is 0-9, current input level is %d", Argv[1]); + Error (NULL, 0, 2000, "Invalid option value", "Debug Level ran= ge is 0-9, current input level is %llu", DebugLevel); ReturnStatus =3D 1; goto Done; } diff --git a/BaseTools/Source/C/GenFv/GenFvInternalLib.c b/BaseTools/Sour= ce/C/GenFv/GenFvInternalLib.c index b5b942500334..6bd59515b1aa 100644 --- a/BaseTools/Source/C/GenFv/GenFvInternalLib.c +++ b/BaseTools/Source/C/GenFv/GenFvInternalLib.c @@ -2397,7 +2397,7 @@ Routine Description: VerboseMsg("SecCore entry point Address =3D 0x%llX", (unsigned long lo= ng) SecCoreEntryAddress); VerboseMsg("BaseAddress =3D 0x%llX", (unsigned long long) FvInfo->Base= Address); bSecCore =3D (UINT32)(SecCoreEntryAddress - FvInfo->BaseAddress); - VerboseMsg("offset =3D 0x%llX", bSecCore); + VerboseMsg("offset =3D 0x%X", bSecCore); =20 if(bSecCore > 0x0fffff) { Error(NULL, 0, 3000, "Invalid", "SEC Entry point must be within 1MB = of start of the FV"); diff --git a/BaseTools/Source/C/GenFw/Elf32Convert.c b/BaseTools/Source/C= /GenFw/Elf32Convert.c index d917a444c82d..87d7f133f132 100644 --- a/BaseTools/Source/C/GenFw/Elf32Convert.c +++ b/BaseTools/Source/C/GenFw/Elf32Convert.c @@ -356,7 +356,7 @@ ScanSections32 ( mCoffOffset +=3D sizeof (EFI_IMAGE_NT_HEADERS32); break; default: - VerboseMsg ("%s unknown e_machine type. Assume IA-32", (UINTN)mEhdr-= >e_machine); + VerboseMsg ("%u unknown e_machine type. Assume IA-32", (UINTN)mEhdr-= >e_machine); mCoffOffset +=3D sizeof (EFI_IMAGE_NT_HEADERS32); break; } diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C= /GenFw/Elf64Convert.c index c6092269e2d1..8b50774beb1e 100644 --- a/BaseTools/Source/C/GenFw/Elf64Convert.c +++ b/BaseTools/Source/C/GenFw/Elf64Convert.c @@ -1096,7 +1096,7 @@ ScanSections64 ( break; =20 default: - VerboseMsg ("%s unknown e_machine type. Assume X64", (UINTN)mEhdr->e= _machine); + VerboseMsg ("%u unknown e_machine type. Assume X64", (UINTN)mEhdr->e= _machine); NtHdr->Pe32Plus.FileHeader.Machine =3D EFI_IMAGE_MACHINE_X64; NtHdr->Pe32Plus.OptionalHeader.Magic =3D EFI_IMAGE_NT_OPTIONAL_HDR64= _MAGIC; } @@ -1837,7 +1837,7 @@ WriteRelocations64 ( case R_X86_64_REX_GOTPCRELX: break; case R_X86_64_64: - VerboseMsg ("EFI_IMAGE_REL_BASED_DIR64 Offset: 0x%08X", + VerboseMsg ("EFI_IMAGE_REL_BASED_DIR64 Offset: 0x%08llX", mCoffSectionsOffset[RelShdr->sh_info] + (Rel->r_offset -= SecShdr->sh_addr)); CoffAddFixup( (UINT32) ((UINT64) mCoffSectionsOffset[RelShdr->sh_info] @@ -1867,7 +1867,7 @@ WriteRelocations64 ( // // case R_X86_64_32S: case R_X86_64_32: - VerboseMsg ("EFI_IMAGE_REL_BASED_HIGHLOW Offset: 0x%08X", + VerboseMsg ("EFI_IMAGE_REL_BASED_HIGHLOW Offset: 0x%08llX"= , mCoffSectionsOffset[RelShdr->sh_info] + (Rel->r_offset -= SecShdr->sh_addr)); CoffAddFixup( (UINT32) ((UINT64) mCoffSectionsOffset[RelShdr->sh_info] diff --git a/BaseTools/Source/C/GenSec/GenSec.c b/BaseTools/Source/C/GenS= ec/GenSec.c index a4c2d19aa6f4..cf24d821aa96 100644 --- a/BaseTools/Source/C/GenSec/GenSec.c +++ b/BaseTools/Source/C/GenSec/GenSec.c @@ -908,7 +908,7 @@ Routine Description: if (FileBuffer !=3D NULL) { free (FileBuffer); } - Error (NULL, 0, 2000, "Invalid parameter", "the size of input file %= s can't be zero", InputFileName); + Error (NULL, 0, 2000, "Invalid parameter", "the size of input file %= s can't be zero", *InputFileName); return EFI_NOT_FOUND; } =20 @@ -1095,7 +1095,7 @@ Routine Description: if (FileBuffer !=3D NULL) { free (FileBuffer); } - Error (NULL, 0, 2000, "Invalid parameter", "the size of input file %= s can't be zero", InputFileName); + Error (NULL, 0, 2000, "Invalid parameter", "the size of input file %= s can't be zero", *InputFileName); return EFI_NOT_FOUND; } =20 --=20 2.28.0.windows.1