blkmap: Handle read-only slices in write path
Some blkmap slices (like blkmap_crypt) don't support writes and have their write function set to NULL. The blkmap_blk_write_slice() function calls the write function without checking if it's NULL, causing a crash when attempting to write to such slices. Add a NULL check before calling the write function. When the slice doesn't support writes, return 0 to indicate no blocks were written. Co-developed-by: Claude <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com>
This commit is contained in:
@@ -281,6 +281,9 @@ static ulong blkmap_blk_write_slice(struct blkmap *bm, struct blkmap_slice *bms,
|
||||
{
|
||||
lbaint_t nr, cnt;
|
||||
|
||||
if (!bms->write)
|
||||
return 0;
|
||||
|
||||
nr = blknr - bms->blknr;
|
||||
cnt = (blkcnt < bms->blkcnt) ? blkcnt : bms->blkcnt;
|
||||
return bms->write(bm, bms, nr, cnt, buffer);
|
||||
|
||||
Reference in New Issue
Block a user