Re: [ 34/77] xen/blkback: Dont trust the handle from the frontend.

From: Paul Bolle
Date: Fri Mar 01 2013 - 16:12:48 EST


On Fri, 2013-03-01 at 11:44 -0800, Greg Kroah-Hartman wrote:
> 3.8-stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
>
> commit 01c681d4c70d64cb72142a2823f27c4146a02e63 upstream.
>
> The 'handle' is the device that the request is from. For the life-time
> of the ring we copy it from a request to a response so that the frontend
> is not surprised by it. But we do not need it - when we start processing
> I/Os we have our own 'struct phys_req' which has only most essential
> information about the request. In fact the 'vbd_translate' ends up
> over-writing the preq.dev with a value from the backend.

Unless that call to vb_translate() fails, doesn't it? Wouldn't preq.dev
still contain random data in that case?

> This assignment of preq.dev with the 'handle' value is superfluous
> so lets not do it.
>
> Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
>
> ---
> drivers/block/xen-blkback/blkback.c | 1 -
> 1 file changed, 1 deletion(-)
>
> --- a/drivers/block/xen-blkback/blkback.c
> +++ b/drivers/block/xen-blkback/blkback.c
> @@ -879,7 +879,6 @@ static int dispatch_rw_block_io(struct x
> goto fail_response;
> }
>
> - preq.dev = req->u.rw.handle;
> preq.sector_number = req->u.rw.sector_number;
> preq.nr_sects = 0;
>

This introduces a new GCC warning in the stable 3.8.y tree:
drivers/block/xen-blkback/blkback.c: In function 'dispatch_rw_block_io':
drivers/block/xen-blkback/blkback.c:904:3: warning: 'preq.dev' may be used uninitialized in this function [-Wuninitialized]

It does look GCC is right here. But I'm totally new to the code in
question, so I'll just ask whether this can really go in stable as is.


Paul Bolle

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