[LTP] [PATCH 2/4] keyctl: Use struct keyctl_dh_params 'private' instead of 'priv'
Petr Vorel
pvorel@suse.cz
Tue Sep 22 18:09:09 CEST 2026
Move struct keyctl_dh_params 'priv' member to union, together with newly
added 'private' member. This is similar what UAPI does since kernel 4.20
commit 2ecefa0a15fd0 ("keys: Fix the use of the C++ keyword "private"
in uapi/linux/keyctl.h"), which adds private member in union in struct
keyctl_dh_params in <linux/keyctl.h>:
struct keyctl_dh_params {
union {
#ifndef __cplusplus
__s32 private;
#endif
__s32 priv;
};
__s32 prime;
__s32 base;
};
This allows to unconditionally use 'private' member in keyctl tests
which fixes compilation on old kernel < 4.20:
keyctl25.c:25:11: error: ‘struct keyctl_dh_params’ has no member named ‘priv’
Fixes: ee02118e9f ("lapi/keyctl.h: Add fallback definitions for extended ops")
Suggested-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
include/lapi/keyctl.h | 5 ++++-
testcases/kernel/syscalls/keyctl/keyctl25.c | 2 +-
testcases/kernel/syscalls/keyctl/keyctl26.c | 2 +-
testcases/kernel/syscalls/keyctl/keyctl27.c | 2 +-
testcases/kernel/syscalls/keyctl/keyctl28.c | 2 +-
5 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/include/lapi/keyctl.h b/include/lapi/keyctl.h
index 92aea858dc..eb4d25c42d 100644
--- a/include/lapi/keyctl.h
+++ b/include/lapi/keyctl.h
@@ -58,7 +58,10 @@ static inline key_serial_t keyctl_join_session_keyring(const char *name) {
#ifndef HAVE_STRUCT_KEYCTL_DH_PARAMS
struct keyctl_dh_params {
- int32_t priv;
+ union {
+ int32_t priv;
+ int32_t private;
+ };
int32_t prime;
int32_t base;
};
diff --git a/testcases/kernel/syscalls/keyctl/keyctl25.c b/testcases/kernel/syscalls/keyctl/keyctl25.c
index d1aa3425d4..84e76c019a 100644
--- a/testcases/kernel/syscalls/keyctl/keyctl25.c
+++ b/testcases/kernel/syscalls/keyctl/keyctl25.c
@@ -22,7 +22,7 @@ static void setup(void)
{
SAFE_KEYCTL(KEYCTL_JOIN_SESSION_KEYRING, 0, 0, 0, 0);
- dh_params->priv = SAFE_NEW_USER_KEY("dh_priv", dh_priv, sizeof(dh_priv),
+ dh_params->private = SAFE_NEW_USER_KEY("dh_priv", dh_priv, sizeof(dh_priv),
KEY_SPEC_PROCESS_KEYRING);
dh_params->prime = SAFE_NEW_USER_KEY("dh_prime", dh_prime, sizeof(dh_prime),
KEY_SPEC_PROCESS_KEYRING);
diff --git a/testcases/kernel/syscalls/keyctl/keyctl26.c b/testcases/kernel/syscalls/keyctl/keyctl26.c
index bdd852fb4c..9488e736fa 100644
--- a/testcases/kernel/syscalls/keyctl/keyctl26.c
+++ b/testcases/kernel/syscalls/keyctl/keyctl26.c
@@ -21,7 +21,7 @@ static void setup(void)
{
SAFE_KEYCTL(KEYCTL_JOIN_SESSION_KEYRING, 0, 0, 0, 0);
- dh_params->priv = SAFE_NEW_USER_KEY("dh_priv", dh_priv, sizeof(dh_priv),
+ dh_params->private = SAFE_NEW_USER_KEY("dh_priv", dh_priv, sizeof(dh_priv),
KEY_SPEC_PROCESS_KEYRING);
dh_params->prime = SAFE_NEW_USER_KEY("dh_prime", dh_prime, sizeof(dh_prime),
KEY_SPEC_PROCESS_KEYRING);
diff --git a/testcases/kernel/syscalls/keyctl/keyctl27.c b/testcases/kernel/syscalls/keyctl/keyctl27.c
index 13a1538ce6..e69b520640 100644
--- a/testcases/kernel/syscalls/keyctl/keyctl27.c
+++ b/testcases/kernel/syscalls/keyctl/keyctl27.c
@@ -27,7 +27,7 @@ static void setup(void)
{
SAFE_KEYCTL(KEYCTL_JOIN_SESSION_KEYRING, 0, 0, 0, 0);
- dh_params->priv = SAFE_NEW_USER_KEY("dh_priv", dh_priv, sizeof(dh_priv),
+ dh_params->private = SAFE_NEW_USER_KEY("dh_priv", dh_priv, sizeof(dh_priv),
KEY_SPEC_PROCESS_KEYRING);
dh_params->prime = SAFE_NEW_USER_KEY("dh_prime", dh_prime, sizeof(dh_prime),
KEY_SPEC_PROCESS_KEYRING);
diff --git a/testcases/kernel/syscalls/keyctl/keyctl28.c b/testcases/kernel/syscalls/keyctl/keyctl28.c
index 4c7f6be17e..15ca3b8fef 100644
--- a/testcases/kernel/syscalls/keyctl/keyctl28.c
+++ b/testcases/kernel/syscalls/keyctl/keyctl28.c
@@ -78,7 +78,7 @@ static void setup(void)
key_base = SAFE_NEW_USER_KEY("dh_base", dh_base, sizeof(dh_base),
KEY_SPEC_PROCESS_KEYRING);
- dh_params->priv = key_priv;
+ dh_params->private = key_priv;
dh_params->prime = key_prime;
dh_params->base = key_base;
--
2.55.0
More information about the ltp
mailing list