__mcctrl_control: Check user privilege
Change-Id: Ia87ab241f980ea25df805bd31d66f07bf3681311
This commit is contained in:
committed by
Masamichi Takagi
parent
c9f05f238d
commit
6cf7cebb2d
@ -3240,9 +3240,46 @@ out:
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int __mcctrl_control_perm(unsigned int request)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
kuid_t euid;
|
||||||
|
|
||||||
|
/* black list */
|
||||||
|
switch (request) {
|
||||||
|
case IHK_OS_AUX_PERF_NUM:
|
||||||
|
case IHK_OS_AUX_PERF_SET:
|
||||||
|
case IHK_OS_AUX_PERF_GET:
|
||||||
|
case IHK_OS_AUX_PERF_ENABLE:
|
||||||
|
case IHK_OS_AUX_PERF_DISABLE:
|
||||||
|
case IHK_OS_AUX_PERF_DESTROY:
|
||||||
|
euid = current_euid();
|
||||||
|
pr_debug("%s: request=0x%x, euid=%u\n",
|
||||||
|
__func__, request, euid.val);
|
||||||
|
if (euid.val) {
|
||||||
|
ret = -EPERM;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
pr_debug("%s: request=0x%x, ret=%d\n", __func__, request, ret);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
long __mcctrl_control(ihk_os_t os, unsigned int req, unsigned long arg,
|
long __mcctrl_control(ihk_os_t os, unsigned int req, unsigned long arg,
|
||||||
struct file *file)
|
struct file *file)
|
||||||
{
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = __mcctrl_control_perm(req);
|
||||||
|
if (ret) {
|
||||||
|
pr_err("%s: error: permission denied, req: %x\n",
|
||||||
|
__func__, req);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
switch (req) {
|
switch (req) {
|
||||||
case MCEXEC_UP_PREPARE_IMAGE:
|
case MCEXEC_UP_PREPARE_IMAGE:
|
||||||
return mcexec_prepare_image(os,
|
return mcexec_prepare_image(os,
|
||||||
|
|||||||
Reference in New Issue
Block a user