]> git.baikalelectronics.ru Git - kernel.git/commit
ipc/shm: fix crash if CONFIG_SHMEM is not set
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>
Mon, 19 Sep 2016 21:44:18 +0000 (14:44 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 19 Sep 2016 22:36:17 +0000 (15:36 -0700)
commitece53a844648f0025ed9fb8ab93f68ea6b1cb96e
treeba862e325b07ebd106cde077dfbddd3aedf4b233
parente3dce813b1350898d0a53b40e19c23b461fdda0e
ipc/shm: fix crash if CONFIG_SHMEM is not set

Commit 57b11caf9019 ("shmem: get_unmapped_area align huge page") makes
use of shm_get_unmapped_area() in shm_file_operations() unconditional to
CONFIG_MMU.

As Tony Battersby pointed this can lead NULL-pointer dereference on
machine with CONFIG_MMU=y and CONFIG_SHMEM=n.  In this case ipc/shm is
backed by ramfs which doesn't provide f_op->get_unmapped_area for
configurations with MMU.

The solution is to provide dummy f_op->get_unmapped_area for ramfs when
CONFIG_MMU=y, which just call current->mm->get_unmapped_area().

Fixes: 57b11caf9019 ("shmem: get_unmapped_area align huge page")
Link: http://lkml.kernel.org/r/20160912102704.140442-1-kirill.shutemov@linux.intel.com
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Reported-by: Tony Battersby <tonyb@cybernetics.com>
Tested-by: Tony Battersby <tonyb@cybernetics.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: <stable@vger.kernel.org> [4.7.x]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/ramfs/file-mmu.c