• Lukas Czerner's avatar
    ext3: fix start and len arguments handling in ext3_trim_fs() · e703c206
    Lukas Czerner authored
    The overflow might happen when passing blocknr into
    ext3_get_group_no_and_offset(), because it expects type ext3_fsblk_t
    which might be smaller than uint64_t. This will most likely happen when
    calling FITRIM with the default argument len = ULLONG_MAX.
    
    Fix this by using "end" variable instead of "start+len" as it is easier
    to get right and specifically check that the end is not beyond the end
    of the file system, so we are sure that the result of
    get_group_no_and_offset() will not overflow. Otherwise truncate it to
    the size of the file system.
    Signed-off-by: default avatarLukas Czerner <lczerner@redhat.com>
    Cc: Jan Kara <jack@suse.cz>
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    e703c206
balloc.c 62.2 KB