On Mon, Jun 01, 2020 at 08:38:56PM +0800, yu kuai wrote: > commit e7bf90e5afe3 ("block/bio-integrity: fix a memory leak bug") add a > kree() for 'buf' if bio_integrity_add_page() return '0'. However, the > object will be freed in bio_integrity_free() since 'bio->bi_opf' and > 'bio->bi_integrity' was set previousy in bio_integrity_alloc(). > > Fixes: commit e7bf90e5afe3 ("block/bio-integrity: fix a memory leak bug") > Signed-off-by: yu kuai <yukuai3@xxxxxxxxxx> > --- > block/bio-integrity.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/block/bio-integrity.c b/block/bio-integrity.c > index bf62c25cde8f..ae07dd78e951 100644 > --- a/block/bio-integrity.c > +++ b/block/bio-integrity.c > @@ -278,7 +278,6 @@ bool bio_integrity_prep(struct bio *bio) > > if (ret == 0) { > printk(KERN_ERR "could not attach integrity payload\n"); > - kfree(buf); > status = BLK_STS_RESOURCE; > goto err_end_io; > } Looks correct, and it relies on the fact the 1st 'page' is always added successfully, so 'buf' is always attached to the bip since then: Reviewed-by: Ming Lei <ming.lei@xxxxxxxxxx> thanks, Ming