pkcs11-provider/0001-Fix-types-for-old-32-bit-systems.patch
Simo Sorce 2aa6ed6ebc Fix issue on i686 builds
Related: RHEL-40124

Signed-off-by: Simo Sorce <simo@redhat.com>
2024-06-05 11:46:07 -04:00

50 lines
1.8 KiB
Diff

From 9fa16b7fd398b62f06cb10892fe93dc574d67399 Mon Sep 17 00:00:00 2001
From: Simo Sorce <simo@redhat.com>
Date: Wed, 5 Jun 2024 11:22:35 -0400
Subject: [PATCH] Fix types for old 32 bit systems
On x86 CK_ULONG and size_t have different sizes, ensure we use
compatible types on our helper functions.
Signed-off-by: Simo Sorce <simo@redhat.com>
---
src/asymmetric_cipher.c | 4 ++--
src/util.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/asymmetric_cipher.c b/src/asymmetric_cipher.c
index 4d87b1c..3256fd2 100644
--- a/src/asymmetric_cipher.c
+++ b/src/asymmetric_cipher.c
@@ -251,12 +251,12 @@ static int p11prov_rsaenc_decrypt_init(void *ctx, void *provkey,
static int
p11prov_tls_constant_time_depadding(struct p11prov_rsaenc_ctx *encctx,
unsigned char *out, unsigned char *buf,
- size_t *out_size, CK_ULONG *ret_cond)
+ CK_ULONG *out_size, CK_ULONG *ret_cond)
{
unsigned char randbuf[SSL_MAX_MASTER_KEY_LENGTH];
CK_ULONG ver_cond = 0;
CK_ULONG cond = 0;
- size_t length = SSL_MAX_MASTER_KEY_LENGTH;
+ CK_ULONG length = SSL_MAX_MASTER_KEY_LENGTH;
int err;
/* always generate a random buffer, to constant_time swap in
diff --git a/src/util.h b/src/util.h
index bcbc2db..1b24666 100644
--- a/src/util.h
+++ b/src/util.h
@@ -120,7 +120,7 @@ static inline int constant_select_int(CK_ULONG cond, int a, int b)
return (int)((A & mask) | (B & ~mask));
}
-static inline void constant_select_buf(CK_ULONG cond, size_t size,
+static inline void constant_select_buf(CK_ULONG cond, CK_ULONG size,
unsigned char *dst, unsigned char *a,
unsigned char *b)
{
--
2.45.0