Re: select() for delay.

From: Steven Rostedt
Date: Mon Oct 24 2005 - 08:22:04 EST


Hi Maduhu,

On Mon, 2005-10-24 at 16:25 +0530, madhu.subbaiah@xxxxxxxxx wrote:

> + put_user(sec, &tvp->tv_sec);
> + put_user(usec, &tvp->tv_usec);

I won't comment on the rest of the patch, but this part is definitely
wrong. The pointer tvp is a user space address and once you dereference
that pointer to get to tv_sec, you can have a fault, which might
segfault the processes.

What you really want is something like:

{
timeval tv;

tv.tv_sec = sec;
tv.tv_usec = usec;
copy_to_user(tvp, &tv, sizeof(tv));
}

-- Steve


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/