From: Caius Zone <zone@xxxxxxxxxxx> bio_alloc_clone() may return NULL under memory pressure. The current code does not check its return value, which may lead to a NULL pointer dereference in bio_chain() or other bio operations. Add a NULL check and return -ENOMEM if allocation fails. Signed-off-by: Caius Zone <zone@xxxxxxxxxxx> --- fs/squashfs/block.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c index 2dc730800f44..b00a71f8933c 100644 --- a/fs/squashfs/block.c +++ b/fs/squashfs/block.c @@ -115,6 +115,9 @@ static int squashfs_bio_read_cached(struct bio *fullbio, struct bio *new = bio_alloc_clone(bdev, fullbio, GFP_NOIO, &fs_bio_set); + if (!new) + return -ENOMEM; + if (bio) { bio_trim(bio, start_idx * PAGE_SECTORS, (end_idx - start_idx) * PAGE_SECTORS); -- 2.25.1