summaryrefslogtreecommitdiff
path: root/debian/patches/fix-32b-format-strings.patch
blob: df2f8633960a7ce22c818db02c27f5293abc4d83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
PR submitted at https://github.com/rhboot/shim/pull/464

commit 88d5a4be2ccd2a75f96177682bc20d7dc4391291
Author: Steve McIntyre <steve@einval.com>
Date:   Thu Apr 28 11:37:12 2022 +0100

    post-process-pe: Fix format string warnings on 32-bit platforms
    
    With -Werror these were causing build failures with stricter gcc:
    
    .../post-process-pe.c: In function 'load_pe':
    .../post-process-pe.c:177:55: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'size_t' {aka 'unsigned int'} [-Werror=format=]
    .../post-process-pe.c:192:56: error: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'UINT64' {aka 'long long unsigned int'} [-Werror=format=]
    .../post-process-pe.c:236:31: error: format '%zu' expects argument of type 'size_t', but argument 2 has type 'UINT64' {aka 'long long unsigned int'} [-Werror=format=]
    .../post-process-pe.c:39:32: note: in definition of macro 'debug'
    .../post-process-pe.c:236:60: note: format string is defined here
    .../post-process-pe.c:240:31: error: format '%zu' expects argument of type 'size_t', but argument 2 has type 'UINT64' {aka 'long long unsigned int'} [-Werror=format=]
    .../post-process-pe.c:39:32: note: in definition of macro 'debug'
    .../post-process-pe.c:240:60: note: format string is defined here
    .../post-process-pe.c:274:30: error: format '%zu' expects argument of type 'size_t', but argument 2 has type 'UINTN' {aka 'long unsigned int'} [-Werror=format=]
    .../post-process-pe.c:39:32: note: in definition of macro 'debug'
    .../post-process-pe.c:274:34: note: format string is defined here
    
    Signed-off-by: Steve McIntyre <steve@einval.com>

diff --git a/post-process-pe.c b/post-process-pe.c
index 8414a5fa..e8c05486 100644
--- a/post-process-pe.c
+++ b/post-process-pe.c
@@ -174,7 +174,7 @@ load_pe(const char *const file, void *const data, const size_t datasize,
 	}
 
 	if (FileAlignment % 2 != 0)
-		errx(1, "%s: Invalid file alignment %ld", file, FileAlignment);
+		errx(1, "%s: Invalid file alignment %ld", file, (long)FileAlignment);
 
 	if (FileAlignment == 0)
 		FileAlignment = 0x200;
@@ -190,7 +190,7 @@ load_pe(const char *const file, void *const data, const size_t datasize,
 	      ctx->NumberOfRvaAndSizes, EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES);
 	if (EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES < ctx->NumberOfRvaAndSizes)
 		errx(1, "%s: invalid number of RVAs (%lu entries, max is %d)",
-		     file, ctx->NumberOfRvaAndSizes,
+		     file, (unsigned long)ctx->NumberOfRvaAndSizes,
 		     EFI_IMAGE_NUMBER_OF_DIRECTORY_ENTRIES);
 
 	if (mul(sizeof(EFI_IMAGE_DATA_DIRECTORY),
@@ -234,11 +234,11 @@ load_pe(const char *const file, void *const data, const size_t datasize,
 		        sizeof(EFI_IMAGE_DATA_DIRECTORY), &sz1))
 			debug(ERROR,
 			      "ctx->NumberOfRvaAndSizes (%zu) * sizeof(EFI_IMAGE_DATA_DIRECTORY) overflows\n",
-			      ctx->NumberOfRvaAndSizes);
+			      (size_t)ctx->NumberOfRvaAndSizes);
 		else
 			debug(ERROR,
 			      "ctx->NumberOfRvaAndSizes (%zu) * sizeof(EFI_IMAGE_DATA_DIRECTORY) = %zu\n",
-			      ctx->NumberOfRvaAndSizes, sz1);
+			      (size_t)ctx->NumberOfRvaAndSizes, sz1);
 		debug(ERROR,
 		      "space after image header:%zu data directory size:%zu\n",
 		      sz0, sz1);
@@ -271,7 +271,7 @@ load_pe(const char *const file, void *const data, const size_t datasize,
 	if (sub(ctx->SizeOfHeaders, SectionHeaderOffset, &sz0) ||
 	    div(sz0, EFI_IMAGE_SIZEOF_SECTION_HEADER, &sz0) ||
 	    (sz0 < ctx->NumberOfSections)) {
-		debug(ERROR, "(%zu - %zu) / %d >= %d\n", ctx->SizeOfHeaders,
+		debug(ERROR, "(%zu - %zu) / %d >= %d\n", (size_t)ctx->SizeOfHeaders,
 		      SectionHeaderOffset, EFI_IMAGE_SIZEOF_SECTION_HEADER,
 		      ctx->NumberOfSections);
 		errx(1, "%s: image sections overflow section headers", file);