FreeBSD Bugzilla – Attachment 128417 Details for
Bug 172276
POSIX: {get,set}groups gidsetsize is u_int not int
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
getsetgroups_arg.diff
getsetgroups_arg.diff (text/plain), 2.87 KB, created by
Ed Maste
on 2012-10-02 17:00:21 UTC
(
hide
)
Description:
getsetgroups_arg.diff
Filename:
MIME Type:
Creator:
Ed Maste
Created:
2012-10-02 17:00:21 UTC
Size:
2.87 KB
patch
obsolete
>Index: sys/kern/kern_prot.c >=================================================================== >--- sys/kern/kern_prot.c (revision 240919) >+++ sys/kern/kern_prot.c (working copy) >@@ -279,7 +279,7 @@ > > #ifndef _SYS_SYSPROTO_H_ > struct getgroups_args { >- u_int gidsetsize; >+ int gidsetsize; > gid_t *gidset; > }; > #endif >@@ -801,7 +801,7 @@ > > #ifndef _SYS_SYSPROTO_H_ > struct setgroups_args { >- u_int gidsetsize; >+ int gidsetsize; > gid_t *gidset; > }; > #endif >@@ -812,7 +812,7 @@ > gid_t *groups = NULL; > int error; > >- if (uap->gidsetsize > ngroups_max + 1) >+ if (uap->gidsetsize < 0 || uap->gidsetsize > ngroups_max + 1) > return (EINVAL); > groups = malloc(uap->gidsetsize * sizeof(gid_t), M_TEMP, M_WAITOK); > error = copyin(uap->gidset, groups, uap->gidsetsize * sizeof(gid_t)); >Index: sys/kern/systrace_args.c >=================================================================== >--- sys/kern/systrace_args.c (revision 240919) >+++ sys/kern/systrace_args.c (working copy) >@@ -491,7 +491,7 @@ > /* getgroups */ > case 79: { > struct getgroups_args *p = params; >- uarg[0] = p->gidsetsize; /* u_int */ >+ iarg[0] = p->gidsetsize; /* int */ > uarg[1] = (intptr_t) p->gidset; /* gid_t * */ > *n_args = 2; > break; >@@ -499,7 +499,7 @@ > /* setgroups */ > case 80: { > struct setgroups_args *p = params; >- uarg[0] = p->gidsetsize; /* u_int */ >+ iarg[0] = p->gidsetsize; /* int */ > uarg[1] = (intptr_t) p->gidset; /* gid_t * */ > *n_args = 2; > break; >Index: sys/kern/syscalls.master >=================================================================== >--- sys/kern/syscalls.master (revision 240919) >+++ sys/kern/syscalls.master (working copy) >@@ -183,9 +183,9 @@ > 77 AUE_NULL OBSOL vlimit > 78 AUE_MINCORE STD { int mincore(const void *addr, size_t len, \ > char *vec); } >-79 AUE_GETGROUPS STD { int getgroups(u_int gidsetsize, \ >+79 AUE_GETGROUPS STD { int getgroups(int gidsetsize, \ > gid_t *gidset); } >-80 AUE_SETGROUPS STD { int setgroups(u_int gidsetsize, \ >+80 AUE_SETGROUPS STD { int setgroups(int gidsetsize, \ > gid_t *gidset); } > 81 AUE_GETPGRP STD { int getpgrp(void); } > 82 AUE_SETPGRP STD { int setpgid(int pid, int pgid); } >Index: sys/compat/freebsd32/syscalls.master >=================================================================== >--- sys/compat/freebsd32/syscalls.master (revision 240919) >+++ sys/compat/freebsd32/syscalls.master (working copy) >@@ -181,9 +181,9 @@ > 77 AUE_NULL OBSOL vlimit > 78 AUE_MINCORE NOPROTO { int mincore(const void *addr, size_t len, \ > char *vec); } >-79 AUE_GETGROUPS NOPROTO { int getgroups(u_int gidsetsize, \ >+79 AUE_GETGROUPS NOPROTO { int getgroups(int gidsetsize, \ > gid_t *gidset); } >-80 AUE_SETGROUPS NOPROTO { int setgroups(u_int gidsetsize, \ >+80 AUE_SETGROUPS NOPROTO { int setgroups(int gidsetsize, \ > gid_t *gidset); } > 81 AUE_GETPGRP NOPROTO { int getpgrp(void); } > 82 AUE_SETPGRP NOPROTO { int setpgid(int pid, int pgid); }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 172276
: 128417