Serge E. Hallyn 02fdb36ae7 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.

[akpm@linux-foundation.org: cleanups]
Signed-off-by: Serge E. Hallyn <serue@us.ibm.com>
Cc: Manfred Spraul <manfred@colorfullife.com>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Pavel Emelyanov <xemul@openvz.org>
Cc: Michael Kerrisk <mtk.manpages@googlemail.com>
Cc: Pierre Peiffer <peifferp@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-04-29 08:06:14 -07:00
..
2008-04-25 00:25:08 +02:00
2008-02-14 21:13:33 -08:00
2008-04-19 09:59:43 +10:00
2008-04-28 08:58:22 -07:00
2007-10-18 14:37:24 -07:00
2008-04-29 08:06:10 -07:00
2008-03-30 14:18:41 -07:00
2008-03-30 14:18:41 -07:00
2008-01-25 21:08:29 +01:00
2008-04-28 08:58:23 -07:00
2007-07-16 09:05:50 -07:00
2008-02-08 09:22:31 -08:00
2008-04-29 08:05:59 -07:00
2008-02-08 09:22:31 -08:00
2008-01-25 21:08:24 +01:00
2008-02-13 16:21:18 -08:00
2008-01-25 21:08:24 +01:00
2008-04-19 19:45:01 +02:00
2008-04-19 19:45:00 +02:00
2008-04-19 19:45:00 +02:00
2007-07-16 09:05:50 -07:00
2008-04-17 10:43:01 -04:00
2008-04-21 22:15:06 +00:00
2008-01-30 13:31:20 +01:00
2008-02-06 10:41:02 -08:00
2008-02-05 09:44:07 -08:00
2008-04-29 08:05:59 -07:00
2008-04-17 12:22:31 +02:00
2008-02-08 09:22:31 -08:00