On Mon, 2008-10-20 at 15:07 +0200, Daniel Gollub wrote:
> On Monday 20 October 2008 14:47:36 Subrata Modak wrote:
> > > > 
> > > > Not sure why ??
> > > 
> > > I just sent some patches for setgroups02_16 - looks like it's a similar
> > > problem for setgroups01_16 (for some reason setgroups01_16 didn't failed 
> > > for
> > > me, only setgroups02_16)
> > > 
> > > Anyway, i guess the reason is the use of the uninitialized groups list and
> > > passing the _full_ length to the syscalls.
> > > 
> > > Could you try attached patch?
> > 
> > Yes, the attached Patch solves the problem reported on x86_64 and does
> > not interfere with architectures where it was already passing. Thanks
> > for this.
> 
> Not quite sure whats going on with sourceforge today - patch queue got
> actually sent out few hours ago. I just attach both patches here once again:

It is always painful. But i received them just now. Will act soon.

Regards--
Subrata

> 
> ------------------------------->8---------------------------------------
> 
> Subject: fix setgroups02 by calling setgroups()/getgroups with correct list 
> size
> 
> setgroups02(_16) is working with an uninitialized list, expect the first GID
> field. setgroups() and getgroups() additionally get called with the full 
> length 
> of the uninitialized list. The uninitialized values cause setgroups02_16 to
> fail:
> 
> ===
> setgroups02_16    1  BROK  :  gid returned from getgroups is too large for 
> testing setgroups32
> ===
> 
> Since the uninitialized values could be greater then 0xffff.
> 
> 
> Signed-off-by: Daniel Gollub <[EMAIL PROTECTED]>
> 
> ---
> 
> Index: ltp-full-20081017/testcases/kernel/syscalls/setgroups/setgroups02.c
> ===================================================================
> --- ltp-full-20081017.orig/testcases/kernel/syscalls/setgroups/setgroups02.c
> +++ ltp-full-20081017/testcases/kernel/syscalls/setgroups/setgroups02.c
> @@ -91,7 +91,7 @@ main(int ac, char **av)
>  {
>       int lc,i;                       /* loop counters */
>       char *msg;                      /* message returned from parse_opts */
> -     int gidsetsize = NGROUPS;       /* total groups */
> +     int gidsetsize = 1;             /* only one GID, the GID of TESTUSER */
>       int PASS_FLAG = 0;              /* used for checking group array */
>       
>       /* Parse standard options given to run the test. */
> 
> ----------------------------------------->8------------------------------------
> Subject: corrected signed/unsigned types of SETGROUPS/GETGROUPS compat 
> functions in setgroups/compat_16.h
> 
> Change argument list of GETGROUPS/SETGROUPS to represent the argument list of
> the syscalls. getgroups() first argument is a signed int!
> 
> Signed-off-by: Daniel Gollub <[EMAIL PROTECTED]>
> 
> ---
>  testcases/kernel/syscalls/setgroups/compat_16.h |    8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> Index: ltp-full-20081020/testcases/kernel/syscalls/setgroups/compat_16.h
> ===================================================================
> --- ltp-full-20081020.orig/testcases/kernel/syscalls/setgroups/compat_16.h
> +++ ltp-full-20081020/testcases/kernel/syscalls/setgroups/compat_16.h
> @@ -32,13 +32,13 @@ extern void cleanup(void);
>  #ifdef TST_USE_COMPAT16_SYSCALL
> 
>  long
> -SETGROUPS(int gidsetsize, GID_T *list)
> +SETGROUPS(size_t gidsetsize, GID_T *list)
>  {
>       return syscall(__NR_setgroups, gidsetsize, list);
>  }
> 
>  int
> -GETGROUPS(size_t size16, GID_T *list16)
> +GETGROUPS(int size16, GID_T *list16)
>  {
>       int r;
>       int i;
> 
> @@ -75,7 +75,7 @@ SETGROUPS(size_t size, const GID_T *list
>  }
> 
>  int
> -GETGROUPS(size_t size, GID_T *list)
> +GETGROUPS(int size, GID_T *list)
>  {
>       return getgroups(size, list);
>  }


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to