Lines Matching refs:setlen
1053 static int sys_broken_getgroups(int setlen, gid_t *gidset)
1059 if(setlen == 0) {
1060 return getgroups(setlen, &gid);
1065 * GID_T array of size setlen.
1068 if(setlen < 0) {
1073 if (setlen == 0)
1074 setlen = groups_max();
1076 if((group_list = SMB_MALLOC_ARRAY(GID_T, setlen)) == NULL) {
1081 if((ngroups = getgroups(setlen, group_list)) < 0) {
1095 static int sys_broken_setgroups(int setlen, gid_t *gidset)
1100 if (setlen == 0)
1103 if (setlen < 0 || setlen > groups_max()) {
1110 * GID_T array of size setlen.
1113 if((group_list = SMB_MALLOC_ARRAY(GID_T, setlen)) == NULL) {
1118 for(i = 0; i < setlen; i++)
1121 if(setgroups(setlen, group_list) != 0) {
1147 static int sys_bsd_setgroups(gid_t primary_gid, int setlen, const gid_t *gidset)
1157 if (setlen == 0) {
1165 new_gidset = SMB_MALLOC_ARRAY(gid_t, setlen + 1);
1170 memcpy(new_gidset + 1, gidset, (setlen * sizeof(gid_t)));
1172 setlen++;
1175 if (setlen > max) {
1177 setlen, max));
1178 setlen = max;
1182 ret = sys_broken_setgroups(setlen, new_gidset ? new_gidset : gidset);
1184 ret = setgroups(setlen, new_gidset ? new_gidset : gidset);
1202 int sys_getgroups(int setlen, gid_t *gidset)
1205 return sys_broken_getgroups(setlen, gidset);
1207 return getgroups(setlen, gidset);
1215 int sys_setgroups(gid_t UNUSED(primary_gid), int setlen, gid_t *gidset)
1223 return sys_bsd_setgroups(primary_gid, setlen, gidset);
1225 return sys_broken_setgroups(setlen, gidset);
1227 return setgroups(setlen, gidset);