NetLabel: Fix memory leak in SELinux glue code
Subsystems (3)
RFC PATCH 1/1 NetLabel: Fix memory leak in SELinux glue code
Fix a memory leak in security_netlbl_sid_to_secattr() as reported here:
* https://bugzilla.redhat.com/show_bug.cgi?id=352281
Signed-off-by Paul Moore <[email protected]>
---
security/selinux/netlabel.c | 7 +++++-- security/selinux/ss/services.c | 2 -- 2 files changed, 5 insertions(+), 4 deletions(-)
security/selinux/netlabel.c +5 -2
@@ -53,10 +53,11 @@ static int selinux_netlbl_sock_setsid(struct sock *sk, u32 sid)struct sk_security_struct *sksec = sk->sk_security;struct netlbl_lsm_secattr secattr; +netlbl_secattr_init (&secattr); + rc =security_netlbl_sid_to_secattr (sid, &secattr);if (rc !=0 ) -return rc; - + goto sock_setsid_return; rc =netlbl_sock_setattr (sk, &secattr);if (rc ==0 ) {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); } +sock_setsid_return: +netlbl_secattr_destroy (&secattr);return rc; }
security/selinux/ss/services.c +0 -2
@@ -2606,8 +2606,6 @@ int security_netlbl_sid_to_secattr(u32 sid, struct netlbl_lsm_secattr *secattr)int rc = -ENOENT ;struct context *ctx; -netlbl_secattr_init (secattr); -if (!ss_initialized)return 0 ;