Re: [Stable-review] [PATCH 20/23] tracing: Fix panic when lseek()called on "trace" opened for writing

From: Ben Hutchings
Date: Mon Feb 14 2011 - 18:14:43 EST


On Mon, 2011-02-07 at 00:23 +0100, Willy Tarreau wrote:
> 2.6.27.58-stable review patch. If anyone has any objections, please let us know.
>
> ------------------
>
> From: Slava Pestov <slavapestov@xxxxxxxxxx>
>
> commit 364829b1263b44aa60383824e4c1289d83d78ca7 upstream.
>
> The file_ops struct for the "trace" special file defined llseek as seq_lseek().
> However, if the file was opened for writing only, seq_open() was not called,
> and the seek would dereference a null pointer, file->private_data.
>
> This patch introduces a new wrapper for seq_lseek() which checks if the file
> descriptor is opened for reading first. If not, it does nothing.
[...]
> --- longterm-2.6.27.orig/kernel/trace/trace.c 2011-01-23 10:52:37.000000000 +0100
> +++ longterm-2.6.27/kernel/trace/trace.c 2011-01-29 11:42:07.287067215 +0100
> @@ -2041,17 +2041,25 @@
> return ret;
> }
>
> +static loff_t tracing_seek(struct file *file, loff_t offset, int origin)
[...]
> + .llseek = tracing_lseek,
[...]
> + .llseek = tracing_lseek,
[...]

These names don't agree!

Ben.

--
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.

Attachment: signature.asc
Description: This is a digitally signed message part