Tejun Heo
ce36394269
mmap: fix petty bug in anonymous shared mmap offset handling
Anonymous mappings should ignore offset but shared anonymous mapping
forgot to clear it and makes the following legit test program trigger
SIGBUS.
#include <sys/mman.h>
#include <stdio.h>
#include <errno.h>
#define PAGE_SIZE 4096
int main(void)
{
char *p;
int i;
p = mmap(NULL, 2 * PAGE_SIZE, PROT_READ|PROT_WRITE,
MAP_SHARED|MAP_ANONYMOUS, -1, PAGE_SIZE);
if (p == MAP_FAILED) {
perror("mmap");
return 1;
}
for (i = 0; i < 2; i++) {
printf("page %d\n", i);
p[i * 4096] = i;
}
return 0;
}
Fix it.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Hugh Dickins <hugh@veritas.com>
Acked-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
2008-09-03 19:58:53 -07:00 |
| .. |
|
allocpercpu.c
|
mm/allocpercpu.c: make 4 functions static
|
2008-07-26 12:00:12 -07:00 |
|
backing-dev.c
|
|
|
|
bootmem.c
|
bootmem: fix aligning of node-relative indexes and offsets
|
2008-08-20 15:40:31 -07:00 |
|
bounce.c
|
|
|
|
dmapool.c
|
|
|
|
fadvise.c
|
|
|
|
filemap.c
|
VFS: fix dio write returning EIO when try_to_release_page fails
|
2008-09-02 19:21:37 -07:00 |
|
filemap_xip.c
|
mm: xip/ext2 fix block allocation race
|
2008-08-20 15:40:32 -07:00 |
|
fremap.c
|
mmu-notifiers: core
|
2008-07-28 16:30:21 -07:00 |
|
highmem.c
|
highmem: Export totalhigh_pages.
|
2008-07-19 22:39:46 -07:00 |
|
hugetlb.c
|
allocate structures for reservation tracking in hugetlbfs outside of spinlocks v2
|
2008-08-12 16:07:28 -07:00 |
|
internal.h
|
mm: export prep_compound_page to mm
|
2008-07-24 10:47:17 -07:00 |
|
Kconfig
|
mm: Make generic weak get_user_pages_fast and EXPORT_GPL it
|
2008-08-12 17:52:53 +10:00 |
|
maccess.c
|
|
|
|
madvise.c
|
madvise: update function comment of madvise_dontneed
|
2008-07-30 09:41:45 -07:00 |
|
Makefile
|
mmu-notifiers: core
|
2008-07-28 16:30:21 -07:00 |
|
memcontrol.c
|
memcg: fix oops in mem_cgroup_shrink_usage
|
2008-08-12 16:07:28 -07:00 |
|
memory.c
|
mm: rename page trylock
|
2008-08-04 21:31:34 -07:00 |
|
memory_hotplug.c
|
memory-hotplug: add sysfs removable attribute for hotplug memory remove
|
2008-07-24 10:47:21 -07:00 |
|
mempolicy.c
|
do_migrate_pages(): remove unused variable
|
2008-08-12 16:07:29 -07:00 |
|
mempool.c
|
|
|
|
migrate.c
|
mm: rename page trylock
|
2008-08-04 21:31:34 -07:00 |
|
mincore.c
|
|
|
|
mlock.c
|
mlock() fix return values
|
2008-08-04 16:58:45 -07:00 |
|
mm_init.c
|
mm: mminit_loglevel cannot be __meminitdata anymore
|
2008-08-20 15:40:30 -07:00 |
|
mmap.c
|
mmap: fix petty bug in anonymous shared mmap offset handling
|
2008-09-03 19:58:53 -07:00 |
|
mmu_notifier.c
|
mmu-notifiers: core
|
2008-07-28 16:30:21 -07:00 |
|
mmzone.c
|
|
|
|
mprotect.c
|
mmu-notifiers: core
|
2008-07-28 16:30:21 -07:00 |
|
mremap.c
|
mmu-notifiers: core
|
2008-07-28 16:30:21 -07:00 |
|
msync.c
|
|
|
|
nommu.c
|
nommu: Provide vmalloc_exec().
|
2008-08-04 16:01:47 +09:00 |
|
oom_kill.c
|
security: Fix setting of PF_SUPERPRIV by __capable()
|
2008-08-14 22:59:43 +10:00 |
|
page-writeback.c
|
mm: spinlock tree_lock
|
2008-07-26 12:00:06 -07:00 |
|
page_alloc.c
|
mm/bootmem: silence section mismatch warning - contig_page_data/bootmem_node_data
|
2008-09-02 19:21:37 -07:00 |
|
page_io.c
|
|
|
|
page_isolation.c
|
Remove '#include <stddef.h>' from mm/page_isolation.c
|
2008-09-02 09:29:01 +01:00 |
|
pagewalk.c
|
|
|
|
pdflush.c
|
pdflush: use time_after() instead of open-coding it
|
2008-07-25 10:53:28 -07:00 |
|
prio_tree.c
|
|
|
|
quicklist.c
|
mm: size of quicklists shouldn't be proportional to the number of CPUs
|
2008-09-02 19:21:38 -07:00 |
|
readahead.c
|
mm: readahead scan lockless
|
2008-07-26 12:00:06 -07:00 |
|
rmap.c
|
mm: dirty page tracking race fix
|
2008-08-20 15:40:32 -07:00 |
|
shmem.c
|
mm: rename page trylock
|
2008-08-04 21:31:34 -07:00 |
|
shmem_acl.c
|
[PATCH] sanitize ->permission() prototype
|
2008-07-26 20:53:14 -04:00 |
|
slab.c
|
mm: unexport ksize
|
2008-07-29 23:44:26 +03:00 |
|
slob.c
|
mm: unexport ksize
|
2008-07-29 23:44:26 +03:00 |
|
slub.c
|
slub: Disable NUMA remote node defragmentation by default
|
2008-08-20 21:50:21 +03:00 |
|
sparse-vmemmap.c
|
Christoph has moved
|
2008-07-04 10:40:04 -07:00 |
|
sparse.c
|
mm/sparse.c: removed duplicated include
|
2008-08-12 16:07:30 -07:00 |
|
swap.c
|
mm: rename page trylock
|
2008-08-04 21:31:34 -07:00 |
|
swap_state.c
|
mm: show free swap as signed
|
2008-08-20 15:40:30 -07:00 |
|
swapfile.c
|
mm: rename page trylock
|
2008-08-04 21:31:34 -07:00 |
|
thrash.c
|
|
|
|
tiny-shmem.c
|
|
|
|
truncate.c
|
VFS: fix dio write returning EIO when try_to_release_page fails
|
2008-09-02 19:21:37 -07:00 |
|
util.c
|
mm: Make generic weak get_user_pages_fast and EXPORT_GPL it
|
2008-08-12 17:52:53 +10:00 |
|
vmalloc.c
|
Use WARN() in mm/vmalloc.c
|
2008-07-26 12:00:07 -07:00 |
|
vmscan.c
|
mm: rename page trylock
|
2008-08-04 21:31:34 -07:00 |
|
vmstat.c
|
[ARM] Skip memory holes in FLATMEM when reading /proc/pagetypeinfo
|
2008-08-27 20:09:28 +01:00 |