[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