Re: [PATCH] direct_io: fix use after free in __blockdev_direct_IO

From: Al Viro
Date: Thu Dec 17 2009 - 04:29:53 EST


On Thu, Dec 17, 2009 at 04:49:32PM +0800, Xiaotian Feng wrote:
> @@ -1197,7 +1200,11 @@ __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode,
> (end > i_size_read(inode)));
>
> retval = direct_io_worker(rw, iocb, inode, iov, offset,
> - nr_segs, blkbits, get_block, end_io, dio);
> + nr_segs, blkbits, get_block, end_io,
> + dio, &dio_freed);
> +
> + if (dio_freed)
> + goto out;

Um... I'm not sure that this would be the right fix. How about simple
s/dio->flags/flags/ in the line below?
--
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/