• Home
  • Raw
  • Download

Lines Matching refs:ctx

58 static inline int selinux_authorizable_ctx(struct xfrm_sec_ctx *ctx)  in selinux_authorizable_ctx()  argument
60 return (ctx && in selinux_authorizable_ctx()
61 (ctx->ctx_doi == XFRM_SC_DOI_LSM) && in selinux_authorizable_ctx()
62 (ctx->ctx_alg == XFRM_SC_ALG_SELINUX)); in selinux_authorizable_ctx()
83 struct xfrm_sec_ctx *ctx = NULL; in selinux_xfrm_alloc_user() local
95 ctx = kmalloc(sizeof(*ctx) + str_len + 1, gfp); in selinux_xfrm_alloc_user()
96 if (!ctx) in selinux_xfrm_alloc_user()
99 ctx->ctx_doi = XFRM_SC_DOI_LSM; in selinux_xfrm_alloc_user()
100 ctx->ctx_alg = XFRM_SC_ALG_SELINUX; in selinux_xfrm_alloc_user()
101 ctx->ctx_len = str_len; in selinux_xfrm_alloc_user()
102 memcpy(ctx->ctx_str, &uctx[1], str_len); in selinux_xfrm_alloc_user()
103 ctx->ctx_str[str_len] = '\0'; in selinux_xfrm_alloc_user()
104 rc = security_context_to_sid(ctx->ctx_str, str_len, &ctx->ctx_sid, gfp); in selinux_xfrm_alloc_user()
108 rc = avc_has_perm(tsec->sid, ctx->ctx_sid, in selinux_xfrm_alloc_user()
113 *ctxp = ctx; in selinux_xfrm_alloc_user()
118 kfree(ctx); in selinux_xfrm_alloc_user()
125 static void selinux_xfrm_free(struct xfrm_sec_ctx *ctx) in selinux_xfrm_free() argument
127 if (!ctx) in selinux_xfrm_free()
131 kfree(ctx); in selinux_xfrm_free()
137 static int selinux_xfrm_delete(struct xfrm_sec_ctx *ctx) in selinux_xfrm_delete() argument
141 if (!ctx) in selinux_xfrm_delete()
144 return avc_has_perm(tsec->sid, ctx->ctx_sid, in selinux_xfrm_delete()
153 int selinux_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid, u8 dir) in selinux_xfrm_policy_lookup() argument
159 if (!ctx) in selinux_xfrm_policy_lookup()
163 if (!selinux_authorizable_ctx(ctx)) in selinux_xfrm_policy_lookup()
166 rc = avc_has_perm(fl_secid, ctx->ctx_sid, in selinux_xfrm_policy_lookup()
236 struct xfrm_sec_ctx *ctx = x->security; in selinux_xfrm_skb_sid_ingress() local
239 sid_session = ctx->ctx_sid; in selinux_xfrm_skb_sid_ingress()
242 } else if (sid_session != ctx->ctx_sid) { in selinux_xfrm_skb_sid_ingress()
314 void selinux_xfrm_policy_free(struct xfrm_sec_ctx *ctx) in selinux_xfrm_policy_free() argument
316 selinux_xfrm_free(ctx); in selinux_xfrm_policy_free()
322 int selinux_xfrm_policy_delete(struct xfrm_sec_ctx *ctx) in selinux_xfrm_policy_delete() argument
324 return selinux_xfrm_delete(ctx); in selinux_xfrm_policy_delete()
345 struct xfrm_sec_ctx *ctx; in selinux_xfrm_state_alloc_acquire() local
359 ctx = kmalloc(sizeof(*ctx) + str_len, GFP_ATOMIC); in selinux_xfrm_state_alloc_acquire()
360 if (!ctx) { in selinux_xfrm_state_alloc_acquire()
365 ctx->ctx_doi = XFRM_SC_DOI_LSM; in selinux_xfrm_state_alloc_acquire()
366 ctx->ctx_alg = XFRM_SC_ALG_SELINUX; in selinux_xfrm_state_alloc_acquire()
367 ctx->ctx_sid = secid; in selinux_xfrm_state_alloc_acquire()
368 ctx->ctx_len = str_len; in selinux_xfrm_state_alloc_acquire()
369 memcpy(ctx->ctx_str, ctx_str, str_len); in selinux_xfrm_state_alloc_acquire()
371 x->security = ctx; in selinux_xfrm_state_alloc_acquire()
413 struct xfrm_sec_ctx *ctx = x->security; in selinux_xfrm_sock_rcv_skb() local
414 peer_sid = ctx->ctx_sid; in selinux_xfrm_sock_rcv_skb()