block: fix memory leak in bio_clone()
If bio_integrity_clone() fails, bio_clone() returns NULL without freeing the newly allocated bio. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
4
fs/bio.c
4
fs/bio.c
@@ -465,9 +465,11 @@ struct bio *bio_clone(struct bio *bio, gfp_t gfp_mask)
|
|||||||
|
|
||||||
ret = bio_integrity_clone(b, bio, gfp_mask, fs_bio_set);
|
ret = bio_integrity_clone(b, bio, gfp_mask, fs_bio_set);
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0) {
|
||||||
|
bio_put(b);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user