[ let's fold in to the original patch. ]
Cc: Huang Jianan <[email protected]>
Signed-off-by: Gao Xiang <[email protected]>
---
 fuse/decompress.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/fuse/decompress.c b/fuse/decompress.c
index 4b7cf3211319..4a9f8e7995c1 100644
--- a/fuse/decompress.c
+++ b/fuse/decompress.c
@@ -18,8 +18,11 @@ static int z_erofs_shifted_transform(struct 
z_erofs_decompress_req *rq)
        char *dest = rq->out;
        char *src = rq->in + rq->ofs_head;
 
-       memcpy(dest, src, rq->outputsize - rq->ofs_head);
+       if (rq->inputsize != EROFS_BLKSIZ)
+               return -EFSCORRUPTED;
 
+       DBG_BUGON(rq->outputsize > EROFS_BLKSIZ);
+       memcpy(dest, src, rq->outputsize - rq->ofs_head);
        return 0;
 }
 
-- 
2.24.0

Reply via email to