From: Tim Hockin Remove the usage of TASK_SIZE and just use put_user(). --- 25-akpm/arch/ia64/ia32/sys_ia32.c | 16 ++-------------- 25-akpm/arch/s390/kernel/compat_linux.c | 16 ++-------------- 25-akpm/arch/sparc64/kernel/sys_sparc32.c | 16 ++-------------- 25-akpm/kernel/uid16.c | 16 ++-------------- 4 files changed, 8 insertions(+), 56 deletions(-) diff -puN arch/ia64/ia32/sys_ia32.c~increase-NGROUPS-cleanup arch/ia64/ia32/sys_ia32.c --- 25/arch/ia64/ia32/sys_ia32.c~increase-NGROUPS-cleanup Thu Jan 29 15:44:36 2004 +++ 25-akpm/arch/ia64/ia32/sys_ia32.c Thu Jan 29 15:44:36 2004 @@ -2419,15 +2419,9 @@ groups16_to_user(short *grouplist, struc int i; short group; - if (group_info->ngroups > TASK_SIZE/sizeof(group)) - return -EFAULT; - if (!access_ok(VERIFY_WRITE, grouplist, - group_info->ngroups * sizeof(group))) - return -EFAULT; - for (i = 0; i < group_info->ngroups; i++) { group = (short)GROUP_AT(group_info, i); - if (__put_user(group, grouplist+i)) + if (put_user(group, grouplist+i)) return -EFAULT; } @@ -2440,14 +2434,8 @@ groups16_from_user(struct group_info *gr int i; short group; - if (group_info->ngroups > TASK_SIZE/sizeof(group)) - return -EFAULT; - if (!access_ok(VERIFY_READ, grouplist, - group_info->ngroups * sizeof(group))) - return -EFAULT; - for (i = 0; i < group_info->ngroups; i++) { - if (__get_user(group, grouplist+i)) + if (get_user(group, grouplist+i)) return -EFAULT; GROUP_AT(group_info, i) = (gid_t)group; } diff -puN arch/s390/kernel/compat_linux.c~increase-NGROUPS-cleanup arch/s390/kernel/compat_linux.c --- 25/arch/s390/kernel/compat_linux.c~increase-NGROUPS-cleanup Thu Jan 29 15:44:36 2004 +++ 25-akpm/arch/s390/kernel/compat_linux.c Thu Jan 29 15:44:36 2004 @@ -195,15 +195,9 @@ static int groups16_to_user(u16 *groupli int i; u16 group; - if (group_info->ngroups > TASK_SIZE/sizeof(group)) - return -EFAULT; - if (!access_ok(VERIFY_WRITE, grouplist, - group_info->ngroups * sizeof(group))) - return -EFAULT; - for (i = 0; i < group_info->ngroups; i++) { group = (u16)GROUP_AT(group_info, i); - if (__put_user(group, grouplist+i)) + if (put_user(group, grouplist+i)) return -EFAULT; } @@ -215,14 +209,8 @@ static int groups16_from_user(struct gro int i; u16 group; - if (group_info->ngroups > TASK_SIZE/sizeof(group)) - return -EFAULT; - if (!access_ok(VERIFY_READ, grouplist, - group_info->ngroups * sizeof(group))) - return -EFAULT; - for (i = 0; i < group_info->ngroups; i++) { - if (__get_user(group, grouplist+i)) + if (get_user(group, grouplist+i)) return -EFAULT; GROUP_AT(group_info, i) = (gid_t)group; } diff -puN arch/sparc64/kernel/sys_sparc32.c~increase-NGROUPS-cleanup arch/sparc64/kernel/sys_sparc32.c --- 25/arch/sparc64/kernel/sys_sparc32.c~increase-NGROUPS-cleanup Thu Jan 29 15:44:36 2004 +++ 25-akpm/arch/sparc64/kernel/sys_sparc32.c Thu Jan 29 15:44:36 2004 @@ -184,15 +184,9 @@ static int groups16_to_user(u16 *groupli int i; u16 group; - if (group_info->ngroups > TASK_SIZE/sizeof(group)) - return -EFAULT; - if (!access_ok(VERIFY_WRITE, grouplist, - group_info->ngroups * sizeof(group))) - return -EFAULT; - for (i = 0; i < group_info->ngroups; i++) { group = (u16)GROUP_AT(group_info, i); - if (__put_user(group, grouplist+i)) + if (put_user(group, grouplist+i)) return -EFAULT; } @@ -204,14 +198,8 @@ static int groups16_from_user(struct gro int i; u16 group; - if (group_info->ngroups > TASK_SIZE/sizeof(group)) - return -EFAULT; - if (!access_ok(VERIFY_READ, grouplist, - group_info->ngroups * sizeof(group))) - return -EFAULT; - for (i = 0; i < group_info->ngroups; i++) { - if (__get_user(group, grouplist+i)) + if (get_user(group, grouplist+i)) return -EFAULT; GROUP_AT(group_info, i) = (gid_t)group; } diff -puN kernel/uid16.c~increase-NGROUPS-cleanup kernel/uid16.c --- 25/kernel/uid16.c~increase-NGROUPS-cleanup Thu Jan 29 15:44:36 2004 +++ 25-akpm/kernel/uid16.c Thu Jan 29 15:44:36 2004 @@ -113,15 +113,9 @@ static int groups16_to_user(old_gid_t __ int i; old_gid_t group; - if (group_info->ngroups > TASK_SIZE/sizeof(group)) - return -EFAULT; - if (!access_ok(VERIFY_WRITE, grouplist, - group_info->ngroups * sizeof(group))) - return -EFAULT; - for (i = 0; i < group_info->ngroups; i++) { group = (old_gid_t)GROUP_AT(group_info, i); - if (__put_user(group, grouplist+i)) + if (put_user(group, grouplist+i)) return -EFAULT; } @@ -134,14 +128,8 @@ static int groups16_from_user(struct gro int i; old_gid_t group; - if (group_info->ngroups > TASK_SIZE/sizeof(group)) - return -EFAULT; - if (!access_ok(VERIFY_READ, grouplist, - group_info->ngroups * sizeof(group))) - return -EFAULT; - for (i = 0; i < group_info->ngroups; i++) { - if (__get_user(group, grouplist+i)) + if (get_user(group, grouplist+i)) return -EFAULT; GROUP_AT(group_info, i) = (gid_t)group; } _