• Z
    tmpfs: fix the issue that the mount and remount results are inconsistent. · 03c87a1c
    ZhaoLong Wang 提交于
    hulk inclusion
    category: bugfix
    bugzilla: 187184, https://gitee.com/openeuler/kernel/issues/I5G9EK
    CVE: NA
    
    --------------------------------
    
    An undefined-behavior issue has not been completely fixed since commit
    a70846a97e7b("tmpfs: fix undefined-behaviour in shmem_reconfigure()").
    In the commit, check in the shmem_reconfigure() is added in remount
    process to avoid the Ubsan problem.  However, the check is not added to
    the mount process.  It causes inconsistent results between mount and
    remount.  The operations to reproduce the problem in user mode as follows:
    
    If nr_blocks is set to 0x8000000000000000, the mounting is successful.
    
      # mount tmpfs /dev/shm/ -t tmpfs -o nr_blocks=0x8000000000000000
    
    However, when -o remount is used, the mount fails because of the
    check in the shmem_reconfigure()
    
      # mount tmpfs /dev/shm/ -t tmpfs -o remount,nr_blocks=0x8000000000000000
      mount: /dev/shm: mount point not mounted or bad option.
    
    Therefore, add checks in the shmem_parse_one() function and remove the
    check in shmem_reconfigure() to avoid this problem.
    Signed-off-by: NZhaoLong Wang <wangzhaolong1@huawei.com>
    Reviewed-by: NZhang Yi <yi.zhang@huawei.com>
    Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
    03c87a1c
shmem.c 109.9 KB