lkml.org 
[lkml]   [2018]   [Nov]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 063/205] vfs: fix FIGETBSZ ioctl on an overlayfs file
    Date
    4.19-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Amir Goldstein <amir73il@gmail.com>

    commit 8f97d1e99149a7f1aa19e47a51b09764382a482e upstream.

    Some anon_bdev filesystems (e.g. overlayfs, ceph) don't have s_blocksize
    set. Returning zero from FIGETBSZ ioctl results in a Floating point
    exception from the e2fsprogs utility filefrag, which divides the size of
    the file with the value returned by FIGETBSZ.

    Fix the interface by returning -EINVAL for these filesystems.

    Fixes: d1d04ef8572b ("ovl: stack file ops")
    Cc: <stable@vger.kernel.org> # v4.19
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    fs/ioctl.c | 3 +++
    1 file changed, 3 insertions(+)

    --- a/fs/ioctl.c
    +++ b/fs/ioctl.c
    @@ -669,6 +669,9 @@ int do_vfs_ioctl(struct file *filp, unsi
    return ioctl_fiemap(filp, arg);

    case FIGETBSZ:
    + /* anon_bdev filesystems may not have a block size */
    + if (!inode->i_sb->s_blocksize)
    + return -EINVAL;
    return put_user(inode->i_sb->s_blocksize, argp);

    case FICLONE:

    \
     
     \ /
      Last update: 2018-11-19 19:05    [W:4.198 / U:0.628 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site