diff --git a/.travis.yml b/.travis.yml index 0112b656..2ce841b4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ env: - FORCE_INSTALL=1 - HAS_OPENSSL_BUILD=1 - HAS_OPENSSL_W32BUILD=0 + - WERROR=1 - secure: WPHaDUI0jTv7+l1R/5W3vzkP5+6/B7SM/VpF7PeVQAC5emWOC/BgNLurosjHUfYWE8Fs9sRYYsv6GXvU5n64gyMQhBQInmrEezfbc/LkP1cj+q5jUzFkJvlmFSIY+b570OPzXoIaR0ydmB80UgOezYvqjjDvI3TGXt+JY8Dp6oljqUuRy647UUkH52E7LKW/+Zh7Yq5sx3VJoBeSLrnl/CVUff4T6onITz2jHYNAf0kK/Yo5whcWpz0L+EGwhHUb8TJfQXMyL2PBQRZMbOBwfhFzFDC+j5uaJ4PYEqSRn+cemQhazDAUbNx7kVi1hMsLZZMRIG56zPJPV7DRM2ggCYaFSf0S/Ifm4e5Dj7TyM3uNqs55tGaJd/fHrNcr95bge/kn9yhqc0Lvm+oIiAKGhMnwwFymqLXxWRWYGCSp5zb8BAdUTrVZaLOA/siyNu6I+y0uPbdF8FFTgmJzKGEI09fRnn2o50Ott087E+hr7Xqr1g4OCmHdNX26uAS5gIwTfMVDLL86+gyY2gDBa9yN3HQrJKmppWjt02sR+1McvZY8Z6CjnlwiAUcMudJc9p2f5W3Mnxxv9Snz+fMGSmgCtc3uSWCrHegHHSm70+0/BDN88WLBY5X35cs821GXuFxvOndisZebjiunCtlRu0W0xQISCQ+Dw20xFhgN7aZiN34= matrix: diff --git a/Library/OcAppleBootPolicyLib/OcAppleBootPolicyLib.c b/Library/OcAppleBootPolicyLib/OcAppleBootPolicyLib.c index df538c55..57aade60 100644 --- a/Library/OcAppleBootPolicyLib/OcAppleBootPolicyLib.c +++ b/Library/OcAppleBootPolicyLib/OcAppleBootPolicyLib.c @@ -1288,11 +1288,9 @@ OcBootPolicyGetApfsRecoveryFilePath ( Result = EFI_NOT_FOUND; for (Index = 0; Index < NoHandles; ++Index) { - DEBUG_CODE_BEGIN (); ZeroMem (&ContainerGuid2, sizeof (ContainerGuid2)); ZeroMem (&VolumeGuid2, sizeof (VolumeGuid2)); VolumeRole2 = 0; - DEBUG_CODE_END (); Status = InternalGetApfsVolumeInfo ( HandleBuffer[Index], @@ -1301,7 +1299,6 @@ OcBootPolicyGetApfsRecoveryFilePath ( &VolumeRole2 ); - DEBUG_CODE_BEGIN (); DEBUG (( DEBUG_BULK_INFO, "OCBP: APFS recovery info %u/%u due to %g/%g/%X - %r\n", @@ -1312,7 +1309,6 @@ OcBootPolicyGetApfsRecoveryFilePath ( (UINT32) VolumeRole2, Status )); - DEBUG_CODE_END (); if (EFI_ERROR (Status) || VolumeRole2 != APPLE_APFS_VOLUME_ROLE_RECOVERY diff --git a/User/Library/File.c b/User/Library/File.c index 242437ef..354a7a97 100644 --- a/User/Library/File.c +++ b/User/Library/File.c @@ -15,7 +15,8 @@ uint8_t *readFile(const char *str, uint32_t *size) { fseek(f, 0, SEEK_SET); uint8_t *string = malloc(fsize + 1); - fread(string, fsize, 1, f); + if (fread(string, fsize, 1, f) != 1) + abort(); fclose(f); string[fsize] = 0; diff --git a/User/Makefile b/User/Makefile index 8188c6b7..a00091c0 100644 --- a/User/Makefile +++ b/User/Makefile @@ -5,8 +5,8 @@ .DEFAULT_GOAL := all -CC ?= gcc -MKDIR := mkdir -p +CC ?= gcc +MKDIR := mkdir -p ifeq ($(UDK_PATH),) ifneq ($(PACKAGES_PATH),) @@ -30,7 +30,27 @@ UDK_ARCH ?= X64 # # Primary CFLAGS. # -CFLAGS := -c -fshort-wchar -Wall -Wextra -Wno-implicit-fallthrough -Wno-unused-parameter -D EFIUSER +CFLAGS := -c -fshort-wchar -Wall -Wextra -D EFIUSER + +ifeq ($(WERROR),1) + CFLAGS += -Werror +endif + +ifeq ($(shell echo 'int a;' | "${CC}" -Wno-unused-parameter -x c -c - -o /dev/null 2>&1),) + CFLAGS += -Wno-unused-parameter +endif + +ifeq ($(shell echo 'int a;' | "${CC}" -Wno-implicit-fallthrough -x c -c - -o /dev/null 2>&1),) + CFLAGS += -Wno-implicit-fallthrough +endif + +ifeq ($(shell echo 'int a;' | "${CC}" -Wno-strict-aliasing -x c -c - -o /dev/null 2>&1),) + CFLAGS += -Wno-strict-aliasing +endif + +ifeq ($(shell echo 'int a;' | "${CC}" -Wno-address -x c -c - -o /dev/null 2>&1),) + CFLAGS += -Wno-address +endif ifeq ($(DIST),Darwin) CFLAGS += -mmacosx-version-min=10.6 @@ -38,8 +58,8 @@ ifeq ($(DIST),Darwin) endif ifeq ($(DIST),Windows) - SUFFIX := .exe - CFLAGS += -D_ISOC99_SOURCE=1 + SUFFIX := .exe + CFLAGS += -D_ISOC99_SOURCE=1 endif ifeq ($(SANITIZE),1) @@ -66,8 +86,8 @@ endif # # Search Paths. # -CFLAGS += -I../../User/Include -CFLAGS += -I../../Include/Acidanthera -I../../Include/Apple -I../../Include/Apple/$(UDK_ARCH) -I../../Include/Generic -I../../Include/Intel -I../../Include/Microsoft +CFLAGS += -I../../User/Include +CFLAGS += -I../../Include/Acidanthera -I../../Include/Apple -I../../Include/Apple/$(UDK_ARCH) -I../../Include/Generic -I../../Include/Intel -I../../Include/Microsoft # # Skip including UDK when suggesting STANDALONE mode. diff --git a/Utilities/AppleEfiSignTool/AppleEfiSignTool.c b/Utilities/AppleEfiSignTool/AppleEfiSignTool.c index cc1722db..879916bd 100644 --- a/Utilities/AppleEfiSignTool/AppleEfiSignTool.c +++ b/Utilities/AppleEfiSignTool/AppleEfiSignTool.c @@ -56,7 +56,8 @@ OpenFile ( ImageSize = (uint32_t) ftell (ImageFp); rewind (ImageFp); Image = malloc (ImageSize + 1); - fread (Image, ImageSize, 1, ImageFp); + if (fread (Image, ImageSize, 1, ImageFp) != 1) + abort(); fclose (ImageFp); } diff --git a/Utilities/EfiResTool/EfiResTool.c b/Utilities/EfiResTool/EfiResTool.c index 35cef9cc..a381032d 100644 --- a/Utilities/EfiResTool/EfiResTool.c +++ b/Utilities/EfiResTool/EfiResTool.c @@ -43,7 +43,7 @@ int main(int argc, const char* argv[]) { #include // open, close #include // fprintf #include // strerror, strdup, strchr -#include // free, EXIT_* +#include // abort, free, EXIT_* #include // mmap, munmap #include // fstat #include // errno @@ -382,7 +382,8 @@ int pack_efires(const char* fname, const char* fromdir, const char* filelist[]) { // write space for header efires_hdr_t tmp; - write(outfd, &tmp, sizeof(tmp)); + if (write(outfd, &tmp, sizeof(tmp)) == -1) + abort(); } // header and one reserved zeroed entry diff --git a/Utilities/TestMacho/Macho.c b/Utilities/TestMacho/Macho.c index b2422ce2..7715dde1 100644 --- a/Utilities/TestMacho/Macho.c +++ b/Utilities/TestMacho/Macho.c @@ -270,7 +270,7 @@ static int FeedMacho(void *file, uint32_t size) { } } - for (size_t i = 0x1000000; i < 0x100000000; i+= 0x1000000) { + for (size_t i = 0x1000000; i < MAX_UINTN; i+= 0x1000000) { if (MachoGetSymbolByRelocationOffset64 (&Context, i, &Symbol)) { if (!AsciiStrCmp (MachoGetSymbolName64 (&Context, Symbol), "__hack")) { code++; diff --git a/Utilities/TestSmbios/Smbios.c b/Utilities/TestSmbios/Smbios.c index 073befe9..d335062c 100644 --- a/Utilities/TestSmbios/Smbios.c +++ b/Utilities/TestSmbios/Smbios.c @@ -113,7 +113,7 @@ int main(int argc, char** argv) { (void)remove("out.bin"); FILE *fh = fopen("out.bin", "wb"); if (fh != NULL) { - fwrite((const void *)patchedTablePtr->TableAddress, patchedTablePtr->TableMaximumSize, 1, fh); + fwrite((const void *) (uintptr_t) (patchedTablePtr->TableAddress), (size_t) (patchedTablePtr->TableMaximumSize), 1, fh); fclose(fh); } else { DEBUG ((DEBUG_ERROR, "Failed to produce out.bin - %r", Status));