[LTP] [PATCH v3] syscalls/keyctl02: Fix insufficiency of default key count quota

Guangwen Feng fenggw-fnst@cn.fujitsu.com
Wed Mar 29 09:23:18 CEST 2017


Adding and revoking keys rapidly in loops will take a significant
number of key count quota, because it takes time to free the
instantiated keys, so temporarily raise the quota when testing.

Signed-off-by: Guangwen Feng <fenggw-fnst@cn.fujitsu.com>
---
 testcases/kernel/syscalls/keyctl/keyctl02.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/testcases/kernel/syscalls/keyctl/keyctl02.c b/testcases/kernel/syscalls/keyctl/keyctl02.c
index 11d3af9..aa98822 100644
--- a/testcases/kernel/syscalls/keyctl/keyctl02.c
+++ b/testcases/kernel/syscalls/keyctl/keyctl02.c
@@ -48,6 +48,9 @@
 #ifdef HAVE_KEYUTILS_H
 
 #define LOOPS	20000
+#define PATH_KEY_COUNT_QUOTA	"/proc/sys/kernel/keys/root_maxkeys"
+
+static int orig_maxkeys;
 
 static void *do_read(void *arg)
 {
@@ -98,9 +101,23 @@ static void do_test(void)
 	tst_res(TPASS, "Bug not reproduced");
 }
 
+static void setup(void)
+{
+	SAFE_FILE_SCANF(PATH_KEY_COUNT_QUOTA, "%d", &orig_maxkeys);
+	SAFE_FILE_PRINTF(PATH_KEY_COUNT_QUOTA, "%d", orig_maxkeys + LOOPS);
+}
+
+static void cleanup(void)
+{
+	if (orig_maxkeys > 0)
+		SAFE_FILE_PRINTF(PATH_KEY_COUNT_QUOTA, "%d", orig_maxkeys);
+}
+
 static struct tst_test test = {
 	.tid = "keyctl02",
 	.needs_root = 1,
+	.setup = setup,
+	.cleanup = cleanup,
 	.test_all = do_test,
 };
 
-- 
1.8.4.2





More information about the ltp mailing list