diff options
| author | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-04-14 11:00:36 -0400 |
|---|---|---|
| committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-04-14 11:00:36 -0400 |
| commit | 277a163c83d7ba93fba1e8980d29a9f8bfcfba6c (patch) | |
| tree | ccfd357d152292958957b6b8a993892e7a8cc95f /kernel/groups.c | |
| parent | a83b93a7480441a47856dc9104bea970e84cda87 (diff) | |
| parent | c9eaa447e77efe77b7fa4c953bd62de8297fd6c5 (diff) | |
Merge tag 'v3.15-rc1' into patchwork
Linux 3.15-rc1
* tag 'v3.15-rc1': (12180 commits)
Linux 3.15-rc1
mm: Initialize error in shmem_file_aio_read()
cifs: Use min_t() when comparing "size_t" and "unsigned long"
sym53c8xx_2: Set DID_REQUEUE return code when aborting squeue
powerpc: Don't try to set LPCR unless we're in hypervisor mode
futex: update documentation for ordering guarantees
ceph: fix pr_fmt() redefinition
vti: don't allow to add the same tunnel twice
gre: don't allow to add the same tunnel twice
drivers: net: xen-netfront: fix array initialization bug
missing bits of "splice: fix racy pipe->buffers uses"
cifs: fix the race in cifs_writev()
ceph_sync_{,direct_}write: fix an oops on ceph_osdc_new_request() failure
pktgen: be friendly to LLTX devices
r8152: check RTL8152_UNPLUG
net: sun4i-emac: add promiscuous support
net/apne: replace IS_ERR and PTR_ERR with PTR_ERR_OR_ZERO
blackfin: cleanup board files
bf609: clock: drop unused clock bit set/clear functions
Blackfin: bf537: rename "CONFIG_ADT75"
...
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 | ||
