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

Reply via email to