__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;
|
||||
}
|
||||
|
||||
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,
|
||||
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) {
|
||||
case MCEXEC_UP_PREPARE_IMAGE:
|
||||
return mcexec_prepare_image(os,
|
||||
|
||||
Reference in New Issue
Block a user