• Konstantin Andreev's avatar
    smack: unix sockets: fix accept()ed socket label · e86cac0a
    Konstantin Andreev authored
    When a process accept()s connection from a unix socket
    (either stream or seqpacket)
    it gets the socket with the label of the connecting process.
    
    For example, if a connecting process has a label 'foo',
    the accept()ed socket will also have 'in' and 'out' labels 'foo',
    regardless of the label of the listener process.
    
    This is because kernel creates unix child sockets
    in the context of the connecting process.
    
    I do not see any obvious way for the listener to abuse
    alien labels coming with the new socket, but,
    to be on the safe side, it's better fix new socket labels.
    Signed-off-by: default avatarKonstantin Andreev <andreev@swemel.ru>
    Signed-off-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
    e86cac0a
smack_lsm.c 128 KB