[PATCH] md: fix NULL point access

Chaohai Chen posted 1 patch 1 year, 4 months ago
drivers/md/md.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH] md: fix NULL point access
Posted by Chaohai Chen 1 year, 4 months ago
bio_alloc_bioset may return NULL, we need to judge it before
assign value to members of "new".

Signed-off-by: Chaohai Chen <wdhh66@163.com>
---
 drivers/md/md.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/md/md.c b/drivers/md/md.c
index aebe12b0ee27..a23419ad3dd8 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -585,6 +585,8 @@ bool md_flush_request(struct mddev *mddev, struct bio *bio)
 		new = bio_alloc_bioset(rdev->bdev, 0,
 				       REQ_OP_WRITE | REQ_PREFLUSH, GFP_NOIO,
 				       &mddev->bio_set);
+		if (!new)
+			continue;
 		new->bi_private = bio;
 		new->bi_end_io = md_end_flush;
 		bio_inc_remaining(bio);
-- 
2.34.1
Re: [PATCH] md: fix NULL point access
Posted by Yu Kuai 1 year, 4 months ago
在 2024/12/28 10:15, Chaohai Chen 写道:
> bio_alloc_bioset may return NULL, we need to judge it before
> assign value to members of "new".

No, please read more about bio_alloc_bioset(), it doesn't return
NULL in this case.

Thanks,
Kuai

> 
> Signed-off-by: Chaohai Chen <wdhh66@163.com>
> ---
>   drivers/md/md.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/md/md.c b/drivers/md/md.c
> index aebe12b0ee27..a23419ad3dd8 100644
> --- a/drivers/md/md.c
> +++ b/drivers/md/md.c
> @@ -585,6 +585,8 @@ bool md_flush_request(struct mddev *mddev, struct bio *bio)
>   		new = bio_alloc_bioset(rdev->bdev, 0,
>   				       REQ_OP_WRITE | REQ_PREFLUSH, GFP_NOIO,
>   				       &mddev->bio_set);
> +		if (!new)
> +			continue;
>   		new->bi_private = bio;
>   		new->bi_end_io = md_end_flush;
>   		bio_inc_remaining(bio);
>