Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6: selinux: fix memory leak in netlabel code
This commit is contained in:
commit
8b85eaadd5
|
@ -53,10 +53,11 @@ static int selinux_netlbl_sock_setsid(struct sock *sk, u32 sid)
|
||||||
struct sk_security_struct *sksec = sk->sk_security;
|
struct sk_security_struct *sksec = sk->sk_security;
|
||||||
struct netlbl_lsm_secattr secattr;
|
struct netlbl_lsm_secattr secattr;
|
||||||
|
|
||||||
|
netlbl_secattr_init(&secattr);
|
||||||
|
|
||||||
rc = security_netlbl_sid_to_secattr(sid, &secattr);
|
rc = security_netlbl_sid_to_secattr(sid, &secattr);
|
||||||
if (rc != 0)
|
if (rc != 0)
|
||||||
return rc;
|
goto sock_setsid_return;
|
||||||
|
|
||||||
rc = netlbl_sock_setattr(sk, &secattr);
|
rc = netlbl_sock_setattr(sk, &secattr);
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
spin_lock_bh(&sksec->nlbl_lock);
|
spin_lock_bh(&sksec->nlbl_lock);
|
||||||
|
@ -64,6 +65,8 @@ static int selinux_netlbl_sock_setsid(struct sock *sk, u32 sid)
|
||||||
spin_unlock_bh(&sksec->nlbl_lock);
|
spin_unlock_bh(&sksec->nlbl_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sock_setsid_return:
|
||||||
|
netlbl_secattr_destroy(&secattr);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2606,8 +2606,6 @@ int security_netlbl_sid_to_secattr(u32 sid, struct netlbl_lsm_secattr *secattr)
|
||||||
int rc = -ENOENT;
|
int rc = -ENOENT;
|
||||||
struct context *ctx;
|
struct context *ctx;
|
||||||
|
|
||||||
netlbl_secattr_init(secattr);
|
|
||||||
|
|
||||||
if (!ss_initialized)
|
if (!ss_initialized)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue