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