Re: [PATCH] staging: erofs: refuse to mount images with malformed volume name
On 2019-8-18 18:28, Gao Xiang wrote: > From: Gao Xiang > > As Richard reminder [1], A valid volume name should be > ended in NIL terminator within the length of volume_name. > > Since this field currently isn't really used, let's fix > it to avoid potential bugs in the future. > > [1] > https://lore.kernel.org/r/1133002215.69049.1566119033047.javamail.zim...@nod.at/ > > Reported-by: Richard Weinberger > Signed-off-by: Gao Xiang Reviewed-by: Chao Yu Thanks, ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: erofs: refuse to mount images with malformed volume name
Hi Gao, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [cannot apply to v5.3-rc4 next-20190816] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Gao-Xiang/staging-erofs-refuse-to-mount-images-with-malformed-volume-name/20190818-193037 config: sparc64-allmodconfig (attached as .config) compiler: sparc64-linux-gcc (GCC) 7.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=sparc64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): drivers/staging/erofs/super.c: In function 'superblock_read': >> drivers/staging/erofs/super.c:153:10: error: 'EFSCORRUPTED' undeclared >> (first use in this function); did you mean 'FS_NRSUPER'? ret = -EFSCORRUPTED; ^~~~ FS_NRSUPER drivers/staging/erofs/super.c:153:10: note: each undeclared identifier is reported only once for each function it appears in vim +153 drivers/staging/erofs/super.c 140 141 sbi->root_nid = le16_to_cpu(layout->root_nid); 142 sbi->inos = le64_to_cpu(layout->inos); 143 144 sbi->build_time = le64_to_cpu(layout->build_time); 145 sbi->build_time_nsec = le32_to_cpu(layout->build_time_nsec); 146 147 memcpy(&sb->s_uuid, layout->uuid, sizeof(layout->uuid)); 148 149 ret = strscpy(sbi->volume_name, layout->volume_name, 150sizeof(layout->volume_name)); 151 if (ret < 0) { /* -E2BIG */ 152 errln("bad volume name without NIL terminator"); > 153 ret = -EFSCORRUPTED; 154 goto out; 155 } 156 ret = 0; 157 out: 158 brelse(bh); 159 return ret; 160 } 161 --- 0-DAY kernel test infrastructureOpen Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation .config.gz Description: application/gzip ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH] staging: erofs: refuse to mount images with malformed volume name
From: Gao Xiang As Richard reminder [1], A valid volume name should be ended in NIL terminator within the length of volume_name. Since this field currently isn't really used, let's fix it to avoid potential bugs in the future. [1] https://lore.kernel.org/r/1133002215.69049.1566119033047.javamail.zim...@nod.at/ Reported-by: Richard Weinberger Signed-off-by: Gao Xiang --- drivers/staging/erofs/super.c | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/staging/erofs/super.c b/drivers/staging/erofs/super.c index f65a1ff9f42f..2da471010a86 100644 --- a/drivers/staging/erofs/super.c +++ b/drivers/staging/erofs/super.c @@ -131,9 +131,14 @@ static int superblock_read(struct super_block *sb) sbi->build_time_nsec = le32_to_cpu(layout->build_time_nsec); memcpy(&sb->s_uuid, layout->uuid, sizeof(layout->uuid)); - memcpy(sbi->volume_name, layout->volume_name, - sizeof(layout->volume_name)); + ret = strscpy(sbi->volume_name, layout->volume_name, + sizeof(layout->volume_name)); + if (ret < 0) { /* -E2BIG */ + errln("bad volume name without NIL terminator"); + ret = -EFSCORRUPTED; + goto out; + } ret = 0; out: brelse(bh); -- 2.17.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel