Skip to content

Commit

Permalink
time: adjtimex: Validate the ADJ_FREQUENCY values
Browse files Browse the repository at this point in the history
Verify that the frequency value from userspace is valid and makes sense.

Unverified values can cause overflows later on.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
[jstultz: Fix up bug for negative values and drop redunent cap check]
Signed-off-by: John Stultz <john.stultz@linaro.org>
  • Loading branch information
Sasha Levin authored and John Stultz committed Jan 7, 2015
1 parent 6ada1fc commit 5e5aeb4
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions kernel/time/ntp.c
Original file line number Diff line number Diff line change
Expand Up @@ -633,6 +633,13 @@ int ntp_validate_timex(struct timex *txc)
if ((txc->modes & ADJ_SETOFFSET) && (!capable(CAP_SYS_TIME)))
return -EPERM;

if (txc->modes & ADJ_FREQUENCY) {
if (LONG_MIN / PPM_SCALE > txc->freq)
return -EINVAL;
if (LONG_MAX / PPM_SCALE < txc->freq)
return -EINVAL;
}

return 0;
}

Expand Down

0 comments on commit 5e5aeb4

Please sign in to comment.