diff options
Diffstat (limited to 'kernel/groups.c')
| -rw-r--r-- | kernel/groups.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/kernel/groups.c b/kernel/groups.c index 90cf1c38c8ea..451698f86cfa 100644 --- a/kernel/groups.c +++ b/kernel/groups.c | |||
| @@ -157,17 +157,13 @@ int groups_search(const struct group_info *group_info, kgid_t grp) | |||
| 157 | * set_groups - Change a group subscription in a set of credentials | 157 | * set_groups - Change a group subscription in a set of credentials |
| 158 | * @new: The newly prepared set of credentials to alter | 158 | * @new: The newly prepared set of credentials to alter |
| 159 | * @group_info: The group list to install | 159 | * @group_info: The group list to install |
| 160 | * | ||
| 161 | * Validate a group subscription and, if valid, insert it into a set | ||
| 162 | * of credentials. | ||
| 163 | */ | 160 | */ |
| 164 | int set_groups(struct cred *new, struct group_info *group_info) | 161 | void set_groups(struct cred *new, struct group_info *group_info) |
| 165 | { | 162 | { |
| 166 | put_group_info(new->group_info); | 163 | put_group_info(new->group_info); |
| 167 | groups_sort(group_info); | 164 | groups_sort(group_info); |
| 168 | get_group_info(group_info); | 165 | get_group_info(group_info); |
| 169 | new->group_info = group_info; | 166 | new->group_info = group_info; |
| 170 | return 0; | ||
| 171 | } | 167 | } |
| 172 | 168 | ||
| 173 | EXPORT_SYMBOL(set_groups); | 169 | EXPORT_SYMBOL(set_groups); |
| @@ -182,18 +178,12 @@ EXPORT_SYMBOL(set_groups); | |||
| 182 | int set_current_groups(struct group_info *group_info) | 178 | int set_current_groups(struct group_info *group_info) |
| 183 | { | 179 | { |
| 184 | struct cred *new; | 180 | struct cred *new; |
| 185 | int ret; | ||
| 186 | 181 | ||
| 187 | new = prepare_creds(); | 182 | new = prepare_creds(); |
| 188 | if (!new) | 183 | if (!new) |
| 189 | return -ENOMEM; | 184 | return -ENOMEM; |
| 190 | 185 | ||
| 191 | ret = set_groups(new, group_info); | 186 | set_groups(new, group_info); |
| 192 | if (ret < 0) { | ||
| 193 | abort_creds(new); | ||
| 194 | return ret; | ||
| 195 | } | ||
| 196 | |||
| 197 | return commit_creds(new); | 187 | return commit_creds(new); |
| 198 | } | 188 | } |
| 199 | 189 | ||
