• Manfred Spraul's avatar
    ipc: sysvsem: implement sys_unshare(CLONE_SYSVSEM) · 9edff4ab
    Manfred Spraul authored
    
    
    sys_unshare(CLONE_NEWIPC) doesn't handle the undo lists properly, this can
    cause a kernel memory corruption.  CLONE_NEWIPC must detach from the existing
    undo lists.
    
    Fix, part 1: add support for sys_unshare(CLONE_SYSVSEM)
    
    The original reason to not support it was the potential (inevitable?)
    confusion due to the fact that sys_unshare(CLONE_SYSVSEM) has the
    inverse meaning of clone(CLONE_SYSVSEM).
    
    Our two most reasonable options then appear to be (1) fully support
    CLONE_SYSVSEM, or (2) continue to refuse explicit CLONE_SYSVSEM,
    but always do it anyway on unshare(CLONE_SYSVSEM).  This patch does
    (1).
    
    Changelog:
    	Apr 16: SEH: switch to Manfred's alternative patch which
    		removes the unshare_semundo() function which
    		always refused CLONE_SYSVSEM.
    Signed-off-by: default avatarManfred Spraul <manfred@colorfullife.com>
    Signed-off-by: default avatarSerge E. Hallyn <serue@us.ibm.com>
    Acked-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Pavel Emelyanov <xemul@openvz.org>
    Cc: Michael ...
    9edff4ab
sem.c 32.7 KB