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
|
mm: bdi: fix race in bdi_class device creation
|
2008-05-20 13:31:53 -07:00 |
|
bootmem.c
|
bootmem: fix aligning of node-relative indexes and offsets
|
2008-08-20 15:40:31 -07:00 |
|
bounce.c
|
|
|
|
dmapool.c
|
dmapool: enable debugging for CONFIG_SLUB_DEBUG_ON too
|
2008-04-28 08:58:20 -07:00 |
|
fadvise.c
|
xip: support non-struct page backed memory
|
2008-04-28 08:58:23 -07:00 |
|
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
|
kgdb: fix optional arch functions and probe_kernel_*
|
2008-04-17 20:05:39 +02:00 |
|
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
|
mm: remove nopage
|
2008-04-28 08:58:18 -07:00 |
|
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
|
mm: filter based on a nodemask as well as a gfp_mask
|
2008-04-28 08:58:19 -07:00 |
|
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
|
pagemap: pass mm into pagewalkers
|
2008-06-12 18:05:41 -07:00 |
|
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
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
|
2008-03-25 08:57:47 -07:00 |
|
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 |