erofs-utils: lib: error out if de_namelen is 0
authorGao Xiang <hsiangkao@linux.alibaba.com>
Tue, 6 Jun 2023 07:51:25 +0000 (15:51 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Wed, 7 Jun 2023 13:43:56 +0000 (21:43 +0800)
de_namelen 0 is invalid for now.

Fixes: 564adb0a852b ("erofs-utils: lib: add API to iterate dirs in EROFS")
Reviewed-by: Guo Xuenan <guoxuenan@huaweicloud.com>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Link: https://lore.kernel.org/r/20230606075125.75125-1-hsiangkao@linux.alibaba.com
lib/dir.c

index cb8c1880a55666ba928923562f8018d67bc26609..abbf27a341118457916e63effa1701fa8328f391 100644 (file)
--- a/lib/dir.c
+++ b/lib/dir.c
@@ -41,7 +41,7 @@ static int traverse_dirents(struct erofs_dir_context *ctx,
                        break;
                }
 
-               if (nameoff + de_namelen > maxsize ||
+               if (nameoff + de_namelen > maxsize || !de_namelen ||
                                de_namelen > EROFS_NAME_LEN) {
                        errmsg = "bogus dirent namelen";
                        break;