• Artem Bityutskiy's avatar
    UBIFS: fix oops when R/O file-system is fsync'ed · 78530bf7
    Artem Bityutskiy authored
    This patch fixes severe UBIFS bug: UBIFS oopses when we 'fsync()' an
    file on R/O-mounter file-system. We (the UBIFS authors) incorrectly
    thought that VFS would not propagate 'fsync()' down to the file-system
    if it is read-only, but this is not the case.
    
    It is easy to exploit this bug using the following simple perl script:
    
    use strict;
    use File::Sync qw(fsync sync);
    
    die "File path is not specified" if not defined $ARGV[0];
    my $path = $ARGV[0];
    
    open FILE, "<", "$path" or die "Cannot open $path: $!";
    fsync(\*FILE) or die "cannot fsync $path: $!";
    close FILE or die "Cannot close $path: $!";
    
    Thanks to Reuben Dowle <Reuben.Dowle@navico.com> for reporting about this
    issue.
    Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
    Reported-by: default avatarReuben Dowle <Reuben.Dowle@navico.com>
    Cc: stable@kernel.org
    78530bf7
file.c 44.9 KB