diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/os/project.c | 2 | ||||
-rw-r--r-- | usr/src/uts/common/syscall/rctlsys.c | 10 |
2 files changed, 6 insertions, 6 deletions
diff --git a/usr/src/uts/common/os/project.c b/usr/src/uts/common/os/project.c index 2fe052cfbe..e19f1959bc 100644 --- a/usr/src/uts/common/os/project.c +++ b/usr/src/uts/common/os/project.c @@ -1020,7 +1020,7 @@ project_kstat_delete(kproject_t *pj) if (pj->kpj_data.kpd_lockedmem_kstat != NULL) { data = pj->kpj_data.kpd_lockedmem_kstat->ks_data; kstat_delete(pj->kpj_data.kpd_lockedmem_kstat); - kmem_free(data, sizeof (zone_kstat_t)); + kmem_free(data, sizeof (kproject_kstat_t)); } pj->kpj_data.kpd_lockedmem_kstat = NULL; } diff --git a/usr/src/uts/common/syscall/rctlsys.c b/usr/src/uts/common/syscall/rctlsys.c index b82f4b0566..5c4da3274b 100644 --- a/usr/src/uts/common/syscall/rctlsys.c +++ b/usr/src/uts/common/syscall/rctlsys.c @@ -870,11 +870,6 @@ rctlsys_projset(char *name, rctl_opaque_t *rblk, size_t size, int flags) return (set_errno(EFAULT)); } - if (secpolicy_rctlsys(CRED(), B_TRUE) != 0) { - kmem_free(kname, MAXPATHLEN); - return (set_errno(EPERM)); - } - if (size > RCTL_PROJSET_MAXSIZE) { kmem_free(kname, MAXPATHLEN); return (set_errno(EINVAL)); @@ -893,6 +888,11 @@ rctlsys_projset(char *name, rctl_opaque_t *rblk, size_t size, int flags) return (set_errno(EINVAL)); } + if (secpolicy_rctlsys(CRED(), B_FALSE) != 0) { + kmem_free(kname, MAXPATHLEN); + return (set_errno(EPERM)); + } + /* Allocate an array large enough for all resource control blocks */ krblk = kmem_zalloc(sizeof (rctl_opaque_t) * size, KM_SLEEP); |