Re: [PATCH 4/4] tracing: fix splice return too large

From: Lai Jiangshan
Date: Wed Apr 08 2009 - 05:33:26 EST


Ingo Molnar wrote:
> * Lai Jiangshan <laijs@xxxxxxxxxxxxxx> wrote:
>
>> - for (i = 0; i < PIPE_BUFFERS && len; i++, len -= size) {
>> + if (*ppos & (PAGE_SIZE - 1)) {
>> + WARN_ONCE(1, "Ftrace: previous read must page-align\n");
>> + return -EINVAL;
>> + }
>> +
>> + if (len & (PAGE_SIZE - 1)) {
>> + WARN_ONCE(1, "Ftrace: splice_read should page-align\n");
>> + if (len < PAGE_SIZE)
>> + return -EINVAL;
>> + len &= PAGE_MASK;
>> + }
>
> Hm, the fix looks good, but is it a good idea to allow the
> triggering of this message from user-space?
>

But it is only triggered once.

If user get content from trace_pipe_raw with non-page-align,
the content is garbage. It's wasting, the kernel disallows it.
This message tell user why he read failed.

These 4 patches make trace_pipe_raw more robustious and consistent
(read by read(2) and splice). I focus on handling raw ftrace data
in userspace, these raw ftrace data should be trustiness.

Thanks.
Lai.

--
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/