diff options
| author | Serge E. Hallyn <[email protected]> | 2008-04-29 01:01:00 -0700 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2008-04-29 08:06:14 -0700 |
| commit | 02fdb36ae7f55db7757b623acd27a62d5000d755 (patch) | |
| tree | 9d96036a7ee174a2828fbb7497a9f365f4f148a1 /tools/perf/scripts/python | |
| parent | 6013f67fc1a4c7fa5bcab2d39c1eaa3e260c7ac1 (diff) | |
ipc: sysvsem: refuse clone(CLONE_SYSVSEM|CLONE_NEWIPC)
CLONE_NEWIPC|CLONE_SYSVSEM interaction isn't handled properly. This can cause
a kernel memory corruption. CLONE_NEWIPC must detach from the existing undo
lists.
Fix, part 3: refuse clone(CLONE_SYSVSEM|CLONE_NEWIPC).
With unshare, specifying CLONE_SYSVSEM means unshare the sysvsem. So it seems
reasonable that CLONE_NEWIPC without CLONE_SYSVSEM would just imply
CLONE_SYSVSEM.
However with clone, specifying CLONE_SYSVSEM means *share* the sysvsem. So
calling clone(CLONE_SYSVSEM|CLONE_NEWIPC) is explicitly asking for something
we can't allow. So return -EINVAL in that case.
[[email protected]: cleanups]
Signed-off-by: Serge E. Hallyn <[email protected]>
Cc: Manfred Spraul <[email protected]>
Acked-by: "Eric W. Biederman" <[email protected]>
Cc: Pavel Emelyanov <[email protected]>
Cc: Michael Kerrisk <[email protected]>
Cc: Pierre Peiffer <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions