netlabel: add address family checks to netlbl_{sock,req}_delattr()
authorPaul Moore <paul@paul-moore.com>
Mon, 6 Jun 2016 19:17:20 +0000 (15:17 -0400)
committerSasha Levin <alexander.levin@verizon.com>
Mon, 22 Aug 2016 16:22:58 +0000 (12:22 -0400)
[ Upstream commit 0e0e36774081534783aa8eeb9f6fbddf98d3c061 ]

It seems risky to always rely on the caller to ensure the socket's
address family is correct before passing it to the NetLabel kAPI,
especially since we see at least one LSM which didn't. Add address
family checks to the *_delattr() functions to help prevent future
problems.

Cc: <stable@vger.kernel.org>
Reported-by: Maninder Singh <maninder1.s@samsung.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
net/netlabel/netlabel_kapi.c

index 28cddc85b7005aa6b6afa7b2c22f8f88a5b7fa46..bfa2b6d5b5cfa52dbe50279efc6a0944a314ec05 100644 (file)
@@ -824,7 +824,11 @@ int netlbl_sock_setattr(struct sock *sk,
  */
 void netlbl_sock_delattr(struct sock *sk)
 {
-       cipso_v4_sock_delattr(sk);
+       switch (sk->sk_family) {
+       case AF_INET:
+               cipso_v4_sock_delattr(sk);
+               break;
+       }
 }
 
 /**
@@ -987,7 +991,11 @@ int netlbl_req_setattr(struct request_sock *req,
 */
 void netlbl_req_delattr(struct request_sock *req)
 {
-       cipso_v4_req_delattr(req);
+       switch (req->rsk_ops->family) {
+       case AF_INET:
+               cipso_v4_req_delattr(req);
+               break;
+       }
 }
 
 /**