Skip to content
Snippets Groups Projects
  • Marek Vasut's avatar
    e531c673
    fs: ext4: Unmount FS in do_fs_type() · e531c673
    Marek Vasut authored
    
    Unlike other generic FS accessors, fs_get_info() does not call fs_close()
    at the end of it's operation. Thus, using fs_get_info() in do_fs_type()
    without calling fs_close() causes potential memory leak by creating new
    filesystem structures on each call of do_fs_type().
    
    The test case to trigger this problem is as follows. It is required to
    have ext4 filesystem on the first partition of the SDMMC device, since
    ext4 requires stateful mount and causes memory allocation.
    => while true ; do mmc rescan ; fstype mmc 1 ; done
    Eventually, the mounting of ext4 will fail due to malloc failures
    and the filesystem will not be correctly detected.
    
    This patch fixes the problem by adding the missing fs_close().
    
    Signed-off-by: default avatarMarek Vasut <marek.vasut+renesas@gmail.com>
    Cc: Simon Glass <sjg@chromium.org>
    Cc: Tom Rini <trini@konsulko.com>
    e531c673
    History
    fs: ext4: Unmount FS in do_fs_type()
    Marek Vasut authored
    
    Unlike other generic FS accessors, fs_get_info() does not call fs_close()
    at the end of it's operation. Thus, using fs_get_info() in do_fs_type()
    without calling fs_close() causes potential memory leak by creating new
    filesystem structures on each call of do_fs_type().
    
    The test case to trigger this problem is as follows. It is required to
    have ext4 filesystem on the first partition of the SDMMC device, since
    ext4 requires stateful mount and causes memory allocation.
    => while true ; do mmc rescan ; fstype mmc 1 ; done
    Eventually, the mounting of ext4 will fail due to malloc failures
    and the filesystem will not be correctly detected.
    
    This patch fixes the problem by adding the missing fs_close().
    
    Signed-off-by: default avatarMarek Vasut <marek.vasut+renesas@gmail.com>
    Cc: Simon Glass <sjg@chromium.org>
    Cc: Tom Rini <trini@konsulko.com>
fs.c 16.78 KiB