mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-17 18:11:00 +03:00
Fix splat-cred.c cred usage
No need to crhold current_cred(), fix possible leak in splat_cred_test2 Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Chunwei Chen <david.chen@osnexus.com> Closes #556
This commit is contained in:
parent
9ba3c01923
commit
87063d7dc3
@ -53,18 +53,18 @@ splat_cred_test1(struct file *file, void *arg)
|
||||
uid_t uid, ruid, suid;
|
||||
gid_t gid, rgid, sgid, *groups;
|
||||
int ngroups, i, count = 0;
|
||||
cred_t *cr = CRED();
|
||||
|
||||
uid = crgetuid(CRED());
|
||||
ruid = crgetruid(CRED());
|
||||
suid = crgetsuid(CRED());
|
||||
uid = crgetuid(cr);
|
||||
ruid = crgetruid(cr);
|
||||
suid = crgetsuid(cr);
|
||||
|
||||
gid = crgetgid(CRED());
|
||||
rgid = crgetrgid(CRED());
|
||||
sgid = crgetsgid(CRED());
|
||||
gid = crgetgid(cr);
|
||||
rgid = crgetrgid(cr);
|
||||
sgid = crgetsgid(cr);
|
||||
|
||||
crhold(CRED());
|
||||
ngroups = crgetngroups(CRED());
|
||||
groups = crgetgroups(CRED());
|
||||
ngroups = crgetngroups(cr);
|
||||
groups = crgetgroups(cr);
|
||||
|
||||
memset(str, 0, GROUP_STR_SIZE);
|
||||
for (i = 0; i < ngroups; i++) {
|
||||
@ -78,8 +78,6 @@ splat_cred_test1(struct file *file, void *arg)
|
||||
}
|
||||
}
|
||||
|
||||
crfree(CRED());
|
||||
|
||||
splat_vprint(file, SPLAT_CRED_TEST1_NAME,
|
||||
"uid: %d ruid: %d suid: %d "
|
||||
"gid: %d rgid: %d sgid: %d\n",
|
||||
@ -114,6 +112,8 @@ splat_cred_test2(struct file *file, void *arg)
|
||||
gid_t gid, rgid, sgid, *groups;
|
||||
int ngroups, i, count = 0;
|
||||
|
||||
crhold(kcred);
|
||||
|
||||
uid = crgetuid(kcred);
|
||||
ruid = crgetruid(kcred);
|
||||
suid = crgetsuid(kcred);
|
||||
@ -122,7 +122,6 @@ splat_cred_test2(struct file *file, void *arg)
|
||||
rgid = crgetrgid(kcred);
|
||||
sgid = crgetsgid(kcred);
|
||||
|
||||
crhold(kcred);
|
||||
ngroups = crgetngroups(kcred);
|
||||
groups = crgetgroups(kcred);
|
||||
|
||||
@ -134,6 +133,7 @@ splat_cred_test2(struct file *file, void *arg)
|
||||
splat_vprint(file, SPLAT_CRED_TEST2_NAME,
|
||||
"Failed too many group entries for temp "
|
||||
"buffer: %d, %s\n", ngroups, str);
|
||||
crfree(kcred);
|
||||
return -ENOSPC;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user