mirror of https://gitee.com/openkylin/linux.git
aio: fix potential leak in aio_run_iocb().
iovec should be reclaimed whenever caller of rw_copy_check_uvector() returns, but it doesn't hold when failure happens right after aio_setup_vectored_rw(). Fix that in a such way to avoid hairy goto. Signed-off-by: Leon Yu <chianglungyu@gmail.com> Signed-off-by: Benjamin LaHaise <bcrl@kvack.org> Cc: stable@vger.kernel.org
This commit is contained in:
parent
e02ba72aab
commit
754320d6e1
6
fs/aio.c
6
fs/aio.c
|
@ -1327,10 +1327,8 @@ static ssize_t aio_run_iocb(struct kiocb *req, unsigned opcode,
|
|||
&iovec, compat)
|
||||
: aio_setup_single_vector(req, rw, buf, &nr_segs,
|
||||
iovec);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = rw_verify_area(rw, file, &req->ki_pos, req->ki_nbytes);
|
||||
if (!ret)
|
||||
ret = rw_verify_area(rw, file, &req->ki_pos, req->ki_nbytes);
|
||||
if (ret < 0) {
|
||||
if (iovec != &inline_vec)
|
||||
kfree(iovec);
|
||||
|
|
Loading…
Reference in New Issue