On Tue, Oct 26, 2010 at 2:02 AM, Caspar Zhang <[email protected]> wrote:
> >From 1101aa2287f761df5cfab29806baf49fadd80c34 Mon Sep 17 00:00:00 2001
> From: Caspar Zhang <[email protected]>
> Date: Tue, 26 Oct 2010 16:54:13 +0800
> Subject: [PATCH] fix keyctl revoke argument
>
> add some codes to find an unused id instead of
> using #define directly.
>
> Signed-off-by: Caspar Zhang <[email protected]>
>
> ---
> testcases/kernel/syscalls/keyctl/keyctl01.c | 15 +++++++++++++--
> 1 files changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/keyctl/keyctl01.c
> b/testcases/kernel/syscalls/keyctl/keyctl01.c
> index 292e573..57f334f 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 i, nonexist_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,17 @@ int main(int ac, char **av) {
> tst_resm(TFAIL | TERRNO,
> "KEYCTL_GET_KEYRING_ID");
> }
>
> + /* find a non-existed key */
> + for (i = INT32_MAX; i > -INT32_MAX; --i)
INT32_MIN is actually preferred over INT32_MAX as that would be an
invalid value (integers are represented in two's complement).
> + {
> + ret = syscall(__NR_keyctl, KEYCTL_READ, i);
> + if (ret == -1 && errno == ENOKEY)
> + break;
> + }
> + nonexist_key = i;
This is ok, but you could actually get rid of i entirely and just
decrement nonexist_key :).
> /* Call keyctl. */
> - ret = syscall(__NR_keyctl, KEYCTL_REVOKE, "MyKey");
> + ret = syscall(__NR_keyctl, KEYCTL_REVOKE,
> nonexist_key);
> if (ret != -1) {
> tst_resm(TFAIL | TERRNO, "KEYCTL_REVOKE
> succeeded unexpectly");
> } else {
Otherwise, the trivial patch looks ok :).
Cheers,
-Garrett
------------------------------------------------------------------------------
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