From: Milan Broz Date: Tue, 29 Jul 2014 18:41:09 +0000 (+0000) Subject: crypto: af_alg - properly label AF_ALG socket X-Git-Tag: v3.16~10^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4c63f83c2c2e16a13ce274ee678e28246bd33645;p=platform%2Fkernel%2Flinux-exynos.git crypto: af_alg - properly label AF_ALG socket Th AF_ALG socket was missing a security label (e.g. SELinux) which means that socket was in "unlabeled" state. This was recently demonstrated in the cryptsetup package (cryptsetup v1.6.5 and later.) See https://bugzilla.redhat.com/show_bug.cgi?id=1115120 This patch clones the sock's label from the parent sock and resolves the issue (similar to AF_BLUETOOTH protocol family). Cc: stable@vger.kernel.org Signed-off-by: Milan Broz Acked-by: Paul Moore Signed-off-by: Herbert Xu --- diff --git a/crypto/af_alg.c b/crypto/af_alg.c index 966f893711b3..6a3ad8011585 100644 --- a/crypto/af_alg.c +++ b/crypto/af_alg.c @@ -21,6 +21,7 @@ #include #include #include +#include struct alg_type_list { const struct af_alg_type *type; @@ -243,6 +244,7 @@ int af_alg_accept(struct sock *sk, struct socket *newsock) sock_init_data(newsock, sk2); sock_graft(sk2, newsock); + security_sk_clone(sk, sk2); err = type->accept(ask->private, sk2); if (err) {