[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <dp2ysiljektn5cibzvcuohkttw2fzm7ir2svkj7cr7xqcvyyni@esmrfmz4c44m>
Date: Thu, 31 Oct 2024 03:14:00 -0400
From: Kent Overstreet <kent.overstreet@...ux.dev>
To: Pei Xiao <xiaopei01@...inos.cn>
Cc: linux-bcachefs@...r.kernel.org, linux-kernel@...r.kernel.org,
xiaopeitux@...mail.com
Subject: Re: [PATCH] bcachefs: add check NULL return of bio_kmalloc in
journal_read_bucket
On Wed, Oct 30, 2024 at 03:48:01PM +0800, Pei Xiao wrote:
> bio_kmalloc may return NULL, will cause NULL pointer dereference.
> Add check NULL return for bio_kmalloc in journal_read_bucket.
>
> Signed-off-by: Pei Xiao <xiaopei01@...inos.cn>
> Fixes: ac10a9611d87 ("bcachefs: Some fixes for building in userspace")
Thanks - applied.
> ---
> fs/bcachefs/errcode.h | 1 +
> fs/bcachefs/journal_io.c | 2 ++
> 2 files changed, 3 insertions(+)
>
> diff --git a/fs/bcachefs/errcode.h b/fs/bcachefs/errcode.h
> index f2736e830007..ae75cb0a842c 100644
> --- a/fs/bcachefs/errcode.h
> +++ b/fs/bcachefs/errcode.h
> @@ -83,6 +83,7 @@
> x(ENOMEM, ENOMEM_fs_other_alloc) \
> x(ENOMEM, ENOMEM_dev_alloc) \
> x(ENOMEM, ENOMEM_disk_accounting) \
> + x(ENOMEM, ENOMEM_journal_read_bucket) \
> x(ENOSPC, ENOSPC_disk_reservation) \
> x(ENOSPC, ENOSPC_bucket_alloc) \
> x(ENOSPC, ENOSPC_disk_label_add) \
> diff --git a/fs/bcachefs/journal_io.c b/fs/bcachefs/journal_io.c
> index fcb68f111079..667a2bb9e20b 100644
> --- a/fs/bcachefs/journal_io.c
> +++ b/fs/bcachefs/journal_io.c
> @@ -1014,6 +1014,8 @@ static int journal_read_bucket(struct bch_dev *ca,
> nr_bvecs = buf_pages(buf->data, sectors_read << 9);
>
> bio = bio_kmalloc(nr_bvecs, GFP_KERNEL);
> + if (!bio)
> + return -BCH_ERR_ENOMEM_journal_read_bucket;
> bio_init(bio, ca->disk_sb.bdev, bio->bi_inline_vecs, nr_bvecs, REQ_OP_READ);
>
> bio->bi_iter.bi_sector = offset;
> --
> 2.34.1
>
Powered by blists - more mailing lists