Coverity-id: 647247
Signed-off-by: Gao Xiang <[email protected]>
---
lib/inode.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/inode.c b/lib/inode.c
index 9f1553e8db2b..267694f83fdf 100644
--- a/lib/inode.c
+++ b/lib/inode.c
@@ -670,10 +670,13 @@ static int erofs_write_unencoded_data(struct erofs_inode
*inode,
if (bh) {
bmgr = (struct erofs_bufmgr *)bh->block->buffers.fsprivate;
pos = erofs_btell(bh, false);
+ if (__erofs_unlikely(pos == EROFS_NULL_ADDR))
+ return -EFAULT;
+
do {
len = min_t(u64, remaining,
round_down(UINT_MAX, 1U << sbi->blkszbits));
- ret = erofs_io_xcopy(bmgr->vf, pos, vf, len, noseek);
+ ret = erofs_io_xcopy(bmgr->vf, (off_t)pos, vf, len,
noseek);
if (ret)
return ret;
pos += len;
--
2.43.5