Fix build for 32-bit arches

Signed-off-by: Robbie Harwood <rharwood@redhat.com>
This commit is contained in:
Robbie Harwood 2022-02-01 22:38:47 +00:00
parent c7c4e0f825
commit ed9353e1df
2 changed files with 114 additions and 0 deletions

View File

@ -0,0 +1,112 @@
From 1f8d0985d59ed41e291398f937d32493898bd711 Mon Sep 17 00:00:00 2001
From: Robbie Harwood <rharwood@redhat.com>
Date: Tue, 1 Feb 2022 17:37:14 -0500
Subject: [PATCH] Fix format strings for 32-bit arches
Sadly, in 2022, this remains a thing.
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
---
src/cms_pe_common.c | 16 +++++++++-------
src/password.c | 7 ++++---
2 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/src/cms_pe_common.c b/src/cms_pe_common.c
index 964f0d9..3a3921b 100644
--- a/src/cms_pe_common.c
+++ b/src/cms_pe_common.c
@@ -49,7 +49,7 @@ check_pointer_and_size(cms_context *cms, Pe *pe, void *ptr, size_t size)
if (p + size > m + map_size)
cmsreterr(0, cms,
- "pointer %p is above mmap end at %p (%lu is %lu bytes past EOF at %lu)",
+ "pointer %p is above mmap end at %p (%lu is %lu bytes past EOF at %zu)",
(void *)((uintptr_t)p + size),
(void *)((uintptr_t)m + map_size),
p + size - m,
@@ -189,7 +189,7 @@ generate_digest(cms_context *cms, Pe *pe, int padded)
if (!check_pointer_and_size(cms, pe, hash_base, hash_size))
cmsgotoerr(error, cms, "PE header is invalid");
dprintf("beginning of hash");
- dprintf("digesting %lx + %lx", hash_base - map, hash_size);
+ dprintf("digesting %tx + %zx", hash_base - map, hash_size);
generate_digest_step(cms, hash_base, hash_size);
/* 5. Skip over the image checksum
@@ -209,7 +209,7 @@ generate_digest(cms_context *cms, Pe *pe, int padded)
cmsgotoerr(error, cms, "PE data directory is invalid");
generate_digest_step(cms, hash_base, hash_size);
- dprintf("digesting %lx + %lx", hash_base - map, hash_size);
+ dprintf("digesting %tx + %zx", hash_base - map, hash_size);
/* 8. Skip over the crt dir
* 9. Hash everything up to the end of the image header. */
@@ -222,7 +222,7 @@ generate_digest(cms_context *cms, Pe *pe, int padded)
cmsgotoerr(error, cms, "PE relocations table is invalid");
generate_digest_step(cms, hash_base, hash_size);
- dprintf("digesting %lx + %lx", hash_base - map, hash_size);
+ dprintf("digesting %tx + %zx", hash_base - map, hash_size);
/* 10. Set SUM_OF_BYTES_HASHED to the size of the header. */
hashed_bytes = pe32opthdr ? pe32opthdr->header_size
@@ -265,7 +265,7 @@ generate_digest(cms_context *cms, Pe *pe, int padded)
}
generate_digest_step(cms, hash_base, hash_size);
- dprintf("digesting %lx + %lx", hash_base - map, hash_size);
+ dprintf("digesting %tx + %zx", hash_base - map, hash_size);
hashed_bytes += hash_size;
}
@@ -285,10 +285,12 @@ generate_digest(cms_context *cms, Pe *pe, int padded)
memset(tmp_array, '\0', tmp_size);
memcpy(tmp_array, hash_base, hash_size);
generate_digest_step(cms, tmp_array, tmp_size);
- dprintf("digesting %lx + %lx", (unsigned long)tmp_array, tmp_size);
+ dprintf("digesting %tx + %zx", (ptrdiff_t)tmp_array,
+ tmp_size);
} else {
generate_digest_step(cms, hash_base, hash_size);
- dprintf("digesting %lx + %lx", hash_base - map, hash_size);
+ dprintf("digesting %tx + %zx", hash_base - map,
+ hash_size);
}
}
dprintf("end of hash");
diff --git a/src/password.c b/src/password.c
index 644f362..05add9a 100644
--- a/src/password.c
+++ b/src/password.c
@@ -213,7 +213,7 @@ parse_pwfile_line(char *start, struct token_pass *tp)
dprintf("non-whitespace span is %zd", span);
if (line[span] == '\0') {
- dprintf("returning %ld", (line + span) - start);
+ dprintf("returning %td", (line + span) - start);
return (line + span) - start;
}
line[span] = '\0';
@@ -241,7 +241,7 @@ parse_pwfile_line(char *start, struct token_pass *tp)
dprintf("Setting token pass %p to { %p, %p }", tp, tp->token, tp->pass);
dprintf("token:\"%s\"", tp->token);
dprintf("pass:\"%s\"", tp->pass);
- dprintf("returning %ld", (line + span) - start);
+ dprintf("returning %td", (line + span) - start);
return (line + span) - start;
}
@@ -330,7 +330,8 @@ SECU_FilePasswd(PK11SlotInfo *slot, PRBool retry, void *arg)
if (c != '\0')
span++;
start += span;
- dprintf("start is file[%ld] == '\\x%02hhx'", start - file, start[0]);
+ dprintf("start is file[%td] == '\\x%02hhx'", start - file,
+ start[0]);
}
qsort(phrases, nphrases, sizeof(struct token_pass), token_pass_cmp);
--
2.34.1

View File

@ -44,6 +44,8 @@ Source0: https://github.com/rhboot/pesign/releases/download/%{version}/pesign-%{
Source1: certs.tar.xz Source1: certs.tar.xz
Source2: pesign.py Source2: pesign.py
Patch0001: 0001-Fix-format-strings-for-32-bit-arches.patch
%description %description
This package contains the pesign utility for signing UEFI binaries as This package contains the pesign utility for signing UEFI binaries as
well as other associated tools. well as other associated tools.