ChangeSet 1.2343, 2005/04/01 13:30:25-08:00, [EMAIL PROTECTED]

        Merge proper selinux i_sock fix.



 hooks.c |   21 +++------------------
 1 files changed, 3 insertions(+), 18 deletions(-)


diff -Nru a/security/selinux/hooks.c b/security/selinux/hooks.c
--- a/security/selinux/hooks.c  2005-04-01 14:05:58 -08:00
+++ b/security/selinux/hooks.c  2005-04-01 14:05:58 -08:00
@@ -877,18 +877,8 @@
        isec->initialized = 1;
 
 out:
-       if (S_ISSOCK(inode->i_mode)) {
-               struct socket *sock = SOCKET_I(inode);
-               if (sock->sk) {
-                       isec->sclass = 
socket_type_to_security_class(sock->sk->sk_family,
-                                                                    
sock->sk->sk_type,
-                                                                    
sock->sk->sk_protocol);
-               } else {
-                       isec->sclass = SECCLASS_SOCKET;
-               }
-       } else {
+       if (isec->sclass == SECCLASS_FILE)
                isec->sclass = inode_mode_to_security_class(inode->i_mode);
-       }
 
        if (hold_sem)
                up(&isec->sem);
@@ -2979,18 +2969,15 @@
 static void selinux_socket_post_create(struct socket *sock, int family,
                                       int type, int protocol, int kern)
 {
-       int err;
        struct inode_security_struct *isec;
        struct task_security_struct *tsec;
 
-       err = inode_doinit(SOCK_INODE(sock));
-       if (err < 0)
-               return;
        isec = SOCK_INODE(sock)->i_security;
 
        tsec = current->security;
        isec->sclass = socket_type_to_security_class(family, type, protocol);
        isec->sid = kern ? SECINITSID_KERNEL : tsec->sid;
+       isec->initialized = 1;
 
        return;
 }
@@ -3158,14 +3145,12 @@
        if (err)
                return err;
 
-       err = inode_doinit(SOCK_INODE(newsock));
-       if (err < 0)
-               return err;
        newisec = SOCK_INODE(newsock)->i_security;
 
        isec = SOCK_INODE(sock)->i_security;
        newisec->sclass = isec->sclass;
        newisec->sid = isec->sid;
+       newisec->initialized = 1;
 
        return 0;
 }
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to