v1: use number as argument in keyctl syscall function v2: add some codes to find an unused id instead of using #define directly. v3: use INT32_MIN to replace -INT32_MAX; remove intermediate variable i.
Signed-off-by: Caspar Zhang <[email protected]> --- testcases/kernel/syscalls/keyctl/keyctl01.c | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-) diff --git a/testcases/kernel/syscalls/keyctl/keyctl01.c b/testcases/kernel/syscalls/keyctl/keyctl01.c index 292e573..11b563b 100644 --- a/testcases/kernel/syscalls/keyctl/keyctl01.c +++ b/testcases/kernel/syscalls/keyctl/keyctl01.c @@ -40,6 +40,7 @@ #include <stdio.h> #include <errno.h> +#include <stdint.h> #include <linux/keyctl.h> /* Harness Specific Include Files. */ #include "test.h" @@ -110,6 +111,7 @@ void setup() { int main(int ac, char **av) { int ret; int lc; /* loop counter */ + int ne_key; /* non-existed key */ char *msg; /* message returned from parse_opts */ /* parse standard options */ @@ -126,7 +128,7 @@ int main(int ac, char **av) { Tst_count = 0; for (testno = 1; testno < TST_TOTAL; ++testno) { - + /* Call keyctl() and ask for a keyring's ID. */ ret = syscall(__NR_keyctl, KEYCTL_GET_KEYRING_ID, KEY_SPEC_USER_SESSION_KEYRING); @@ -136,8 +138,16 @@ int main(int ac, char **av) { tst_resm(TFAIL | TERRNO, "KEYCTL_GET_KEYRING_ID"); } + /* find a non-existed key */ + for (ne_key = INT32_MAX; ne_key > INT32_MIN; --ne_key) + { + ret = syscall(__NR_keyctl, KEYCTL_READ, ne_key); + if (ret == -1 && errno == ENOKEY) + break; + } + /* Call keyctl. */ - ret = syscall(__NR_keyctl, KEYCTL_REVOKE, "MyKey"); + ret = syscall(__NR_keyctl, KEYCTL_REVOKE, ne_key); if (ret != -1) { tst_resm(TFAIL | TERRNO, "KEYCTL_REVOKE succeeded unexpectly"); } else { -- 1.7.3.1 -- Quality Assurance Associate (Kernel) in Red Hat Software (Beijing) Co., R&D Branch TEL: +86-10-62608150 WEB: http://www.redhat.com/ ------------------------------------------------------------------------------ Nokia and AT&T present the 2010 Calling All Innovators-North America contest Create new apps & games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
