summaryrefslogtreecommitdiffstats
path: root/ipc/util.h
diff options
context:
space:
mode:
authorDave Hansen <dave.hansen@linux.intel.com>2014-12-13 01:58:19 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-13 21:42:52 +0100
commitd3c97900b427b8d5a476fdfe484267f09df418d6 (patch)
tree0169510392ae190dcec4376a7341efe955fa27fd /ipc/util.h
parentipc/msg: increase MSGMNI, remove scaling (diff)
downloadlinux-d3c97900b427b8d5a476fdfe484267f09df418d6.tar.xz
linux-d3c97900b427b8d5a476fdfe484267f09df418d6.zip
ipc/shm.c: fix overly aggressive shmdt() when calls span multiple segments
This is a highly-contrived scenario. But, a single shmdt() call can be induced in to unmapping memory from mulitple shm segments. Example code is here: http://www.sr71.net/~dave/intel/shmfun.c The fix is pretty simple: Record the 'struct file' for the first VMA we encounter and then stick to it. Decline to unmap anything not from the same file and thus the same segment. I found this by inspection and the odds of anyone hitting this in practice are pretty darn small. Lightly tested, but it's a pretty small patch. Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> Cc: Manfred Spraul <manfred@colorfullife.com> Reviewed-by: Davidlohr Bueso <dave@stgolabs.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'ipc/util.h')
0 files changed, 0 insertions, 0 deletions