• Greg Ungerer's avatar
    romfs: fix nommu map length to keep inside filesystem · e4ba4fc2
    Greg Ungerer authored
    Checks introduced in commit 4991e725 ("romfs: do not use
    mtd->get_unmapped_area directly") re-introduce problems fixed in the earlier
    commit 2b4b2482 ("romfs: fix romfs_get_unmapped_area() argument check").
    
    If a flat binary app is located at the end of a romfs, its page aligned
    length may be outside of the romfs filesystem. The flat binary loader, via
    nommu do_mmap_pgoff(), page aligns the length it is mmaping. So simple
    offset+size checks will fail - returning EINVAL.
    
    We can truncate the length to keep it inside the romfs filesystem, and that
    also keeps the call to mtd_get_unmapped_area() happy.
    
    Are there any side effects to truncating the size here though?
    Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
    e4ba4fc2
mmap-nommu.c 2.31 KB