On Mon, Sep 17, 2018 at 1:34 PM Stepan Golosunov stepan@golosunov.pp.ru wrote:
On Sun, Sep 16, 2018 at 06:04:57PM -0700, Deepa Dinamani wrote:
static long do_compat_pselect(int n, compat_ulong_t __user *inp, compat_ulong_t __user *outp, compat_ulong_t __user *exp,
struct old_timespec32 __user *tsp, compat_sigset_t __user *sigmask,
compat_size_t sigsetsize)
void __user *tsp, compat_sigset_t __user *sigmask,
compat_size_t sigsetsize, enum poll_time_type type)
{ sigset_t ksigmask, sigsaved; struct timespec64 ts, end_time, *to = NULL; int ret;
if (tsp) {
if (get_old_timespec32(&ts, tsp))
return -EFAULT;
switch (type) {
case PT_OLD_TIMESPEC:
if (get_old_timespec32(&ts, tsp))
return -EFAULT;
break;
case PT_TIMESPEC:
if (get_old_timespec32(&ts, tsp))
return -EFAULT;
break;
default:
BUG();
}
One of the two get_old_timespec32 calls here should be get_timespec64.
Right. It is a copy paste bug.
Thanks, Deepa