diff options
Diffstat (limited to 'security/selinux/xfrm.c')
-rw-r--r-- | security/selinux/xfrm.c | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/security/selinux/xfrm.c b/security/selinux/xfrm.c index 9b777140068f..bd8d1ef40a90 100644 --- a/security/selinux/xfrm.c +++ b/security/selinux/xfrm.c | |||
@@ -372,39 +372,6 @@ void selinux_xfrm_state_free(struct xfrm_state *x) | |||
372 | kfree(ctx); | 372 | kfree(ctx); |
373 | } | 373 | } |
374 | 374 | ||
375 | /* | ||
376 | * SELinux internal function to retrieve the context of a UDP packet | ||
377 | * based on its security association. | ||
378 | * | ||
379 | * Retrieve via setsockopt IP_PASSSEC and recvmsg with control message | ||
380 | * type SCM_SECURITY. | ||
381 | */ | ||
382 | u32 selinux_socket_getpeer_dgram(struct sk_buff *skb) | ||
383 | { | ||
384 | struct sec_path *sp; | ||
385 | |||
386 | if (skb == NULL) | ||
387 | return SECSID_NULL; | ||
388 | |||
389 | if (skb->sk->sk_protocol != IPPROTO_UDP) | ||
390 | return SECSID_NULL; | ||
391 | |||
392 | sp = skb->sp; | ||
393 | if (sp) { | ||
394 | int i; | ||
395 | |||
396 | for (i = sp->len-1; i >= 0; i--) { | ||
397 | struct xfrm_state *x = sp->xvec[i]; | ||
398 | if (selinux_authorizable_xfrm(x)) { | ||
399 | struct xfrm_sec_ctx *ctx = x->security; | ||
400 | return ctx->ctx_sid; | ||
401 | } | ||
402 | } | ||
403 | } | ||
404 | |||
405 | return SECSID_NULL; | ||
406 | } | ||
407 | |||
408 | /* | 375 | /* |
409 | * LSM hook implementation that authorizes deletion of labeled SAs. | 376 | * LSM hook implementation that authorizes deletion of labeled SAs. |
410 | */ | 377 | */ |