diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2007-05-06 17:50:18 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-07 15:12:57 -0400 |
commit | 5bc98594d59672303c4c9c07262ecc373dc374da (patch) | |
tree | bc9855b1448222819d75fb23e26fdcd09382e460 /fs/hugetlbfs/inode.c | |
parent | cfce66047f1893cb7d3abb0d53e65cbbd8d605f0 (diff) |
hugetlbfs: add NULL check in hugetlb_zero_setup()
If hugetlbfs module_init() fails, hugetlbfs_vfsmount is not initialized and
shmget() with SHM_HUGETLB flag will cause NULL pointer dereference.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Acked-by: William Irwin <wli@holomorphy.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/hugetlbfs/inode.c')
-rw-r--r-- | fs/hugetlbfs/inode.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index 842a4ed4052d..98959b87cdf8 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c | |||
@@ -747,6 +747,9 @@ struct file *hugetlb_zero_setup(size_t size) | |||
747 | char buf[16]; | 747 | char buf[16]; |
748 | static atomic_t counter; | 748 | static atomic_t counter; |
749 | 749 | ||
750 | if (!hugetlbfs_vfsmount) | ||
751 | return ERR_PTR(-ENOENT); | ||
752 | |||
750 | if (!can_do_hugetlb_shm()) | 753 | if (!can_do_hugetlb_shm()) |
751 | return ERR_PTR(-EPERM); | 754 | return ERR_PTR(-EPERM); |
752 | 755 | ||