summaryrefslogtreecommitdiff
path: root/fs/timerfd.c
diff options
context:
space:
mode:
authorMichael Bestas <mkbestas@lineageos.org>2021-05-31 03:09:03 +0300
committerMichael Bestas <mkbestas@lineageos.org>2021-05-31 03:09:03 +0300
commit0ce166e3c4e576ae072d950006a937931df8ca3c (patch)
tree87428d6651cc3cd42c586331c67590f3a9e2c578 /fs/timerfd.c
parenta4940e8fb458a45644126d132c2d5b74719df8df (diff)
parent3628cdd31199df6519ecad709f5cc8be9401f93e (diff)
Merge branch 'android-4.4-p' of https://android.googlesource.com/kernel/common into lineage-18.1-caf-msm8998
This brings LA.UM.9.2.r1-03300-SDMxx0.0 up to date with https://android.googlesource.com/kernel/common/ android-4.4-p at commit: 3628cdd31199d Merge 4.4.270 into android-4.4-p Conflicts: drivers/mmc/core/core.c drivers/usb/core/hub.c kernel/trace/trace.c Change-Id: I6b81471122341f9769ce9c65cbd0fedd5e908b38
Diffstat (limited to 'fs/timerfd.c')
-rw-r--r--fs/timerfd.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/timerfd.c b/fs/timerfd.c
index 0274ae2f53e6..147b72349d3b 100644
--- a/fs/timerfd.c
+++ b/fs/timerfd.c
@@ -405,6 +405,11 @@ SYSCALL_DEFINE2(timerfd_create, int, clockid, int, flags)
clockid != CLOCK_BOOTTIME_ALARM))
return -EINVAL;
+ if (!capable(CAP_WAKE_ALARM) &&
+ (clockid == CLOCK_REALTIME_ALARM ||
+ clockid == CLOCK_BOOTTIME_ALARM))
+ return -EPERM;
+
ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
if (!ctx)
return -ENOMEM;
@@ -454,6 +459,11 @@ static int do_timerfd_settime(int ufd, int flags,
return ret;
ctx = f.file->private_data;
+ if (!capable(CAP_WAKE_ALARM) && isalarm(ctx)) {
+ fdput(f);
+ return -EPERM;
+ }
+
timerfd_setup_cancel(ctx, flags);
/*