[LTP] [PATCH v3 02/36] lapi/keyctl.h: Add SAFE_ADD_KEY()

Petr Vorel pvorel@suse.cz
Wed Sep 16 16:03:28 CEST 2026


Suggested-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
 include/lapi/keyctl.h | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/include/lapi/keyctl.h b/include/lapi/keyctl.h
index 1c6627f555..4ba797bf9c 100644
--- a/include/lapi/keyctl.h
+++ b/include/lapi/keyctl.h
@@ -283,8 +283,35 @@ static inline long safe_keyctl(const char *file, const int lineno,
 
 	return rval;
 }
+
 #define SAFE_KEYCTL(cmd, arg2, arg3, arg4, arg5) \
 	safe_keyctl(__FILE__, __LINE__, \
 	     (cmd), (arg2), (arg3), (arg4), (arg5))
 
+static inline key_serial_t safe_add_key(const char *file, const int lineno,
+			  const char *type, const char *desc,
+			  const void *payload, size_t size,
+			  key_serial_t keyring)
+{
+
+	int rval;
+
+	rval = add_key(type, desc, payload, size, keyring);
+
+	if (rval == -1) {
+		tst_brk_(file, lineno, TBROK | TERRNO,
+			 "add_key(%s, '%s', %p, %ld, %d) failed",
+			 type, desc, payload, size, keyring);
+	} else if (rval < -1) {
+		tst_brk_(file, lineno, TBROK | TERRNO,
+			 "Invalid add_key(%s, '%s', %p, %ld, %d) return value %d",
+			 type, desc, payload, size, keyring, rval);
+	}
+
+	return rval;
+}
+
+#define SAFE_ADD_KEY(type, desc, payload, size, keyring) \
+	safe_add_key(__FILE__, __LINE__, \
+                            (type), (desc), (payload), (size), (keyring))
 #endif	/* LAPI_KEYCTL_H__ */
-- 
2.55.0



More information about the ltp mailing list