Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 53cc0b29 authored by Petr Vandrovec's avatar Petr Vandrovec Committed by Jens Axboe
Browse files

When block layer fails to map iov, it calls bio_unmap_user to undo


mapping.  Which is good if pages were mapped - but if they were provided
by someone else and just copied then bad things happen - pages are
released once here, and once by caller, leading to user triggerable BUG
at include/linux/mm.h:246.

Signed-off-by: default avatarPetr Vandrovec <petr@vandrovec.name>
Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent f6f7b52e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -224,7 +224,7 @@ int blk_rq_map_user_iov(struct request_queue *q, struct request *rq,
		 */
		bio_get(bio);
		bio_endio(bio, 0);
		bio_unmap_user(bio);
		__blk_rq_unmap_user(bio);
		return -EINVAL;
	}