After commit 58b6e5e8f1ad ("hugetlbfs: fix memory leak for resv_map"), i_mapping->private_data will be NULL for mode that is not regular and link. Then, it might cause NULL pointer derefernce in hugetlb_reserve_pages() when do_mmap. We can avoid protential null pointer dereference by judging whether it have been allocated. Fixes: 58b6e5e8f1ad ("hugetlbfs: fix memory leak for resv_map") Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Signed-off-by: Yufen Yu <yuyufen@xxxxxxxxxx> --- mm/hugetlb.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 97b1e0290c66..15e4baf2aa7d 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -4465,6 +4465,8 @@ int hugetlb_reserve_pages(struct inode *inode, */ if (!vma || vma->vm_flags & VM_MAYSHARE) { resv_map = inode_resv_map(inode); + if (!resv_map) + return -EOPNOTSUPP; chg = region_chg(resv_map, from, to); -- 2.16.2.dirty