blk_dwrite/blk_derase returns the number of blocks
written/erased. The existing check allowed partial
writes or partial erase to be considered successful.
Fix error handling of blk_dwrite/blk_derase by checking
that return value corresponds to the number of blocks
written/erased.
Signed-off-by: Francois Berder <fberder@outlook.fr>
ret = blk_derase(bdesc, offset, load_size);
}
- if (!ret) {
- printf("Failed to write to block device\n");
+ if (ret != load_size) {
+ printf("Failed to %s block device\n", save ? "write to" : "erase");
return -EIO;
}