FILE
af_unix.h
File preview with syntax highlighting.
linux-6.19.14/security/apparmor/include/af_unix.h
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * AppArmor security module 4 * 5 * This file contains AppArmor af_unix fine grained mediation 6 * 7 * Copyright 2023 Canonical Ltd. 8 * 9 * This program is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU General Public License as 11 * published by the Free Software Foundation, version 2 of the 12 * License. 13 */ 14#ifndef __AA_AF_UNIX_H 15 16#include <net/af_unix.h> 17 18#include "label.h" 19 20#define unix_addr(A) ((struct sockaddr_un *)(A)) 21#define unix_addr_len(L) ((L) - sizeof(sa_family_t)) 22#define unix_peer(sk) (unix_sk(sk)->peer) 23#define is_unix_addr_abstract_name(B) ((B)[0] == 0) 24#define is_unix_addr_anon(A, L) ((A) && unix_addr_len(L) <= 0) 25#define is_unix_addr_fs(A, L) (!is_unix_addr_anon(A, L) && \ 26 !is_unix_addr_abstract_name(unix_addr(A)->sun_path)) 27 28#define is_unix_anonymous(U) (!unix_sk(U)->addr) 29#define is_unix_fs(U) (!is_unix_anonymous(U) && \ 30 unix_sk(U)->addr->name->sun_path[0]) 31#define is_unix_connected(S) ((S)->state == SS_CONNECTED) 32 33 34struct sockaddr_un *aa_sunaddr(const struct unix_sock *u, int *addrlen); 35int aa_unix_peer_perm(const struct cred *subj_cred, 36 struct aa_label *label, const char *op, u32 request, 37 struct sock *sk, struct sock *peer_sk, 38 struct aa_label *peer_label); 39int aa_unix_sock_perm(const char *op, u32 request, struct socket *sock); 40int aa_unix_create_perm(struct aa_label *label, int family, int type, 41 int protocol); 42int aa_unix_bind_perm(struct socket *sock, struct sockaddr *address, 43 int addrlen); 44int aa_unix_connect_perm(struct socket *sock, struct sockaddr *address, 45 int addrlen); 46int aa_unix_listen_perm(struct socket *sock, int backlog); 47int aa_unix_accept_perm(struct socket *sock, struct socket *newsock); 48int aa_unix_msg_perm(const char *op, u32 request, struct socket *sock, 49 struct msghdr *msg, int size); 50int aa_unix_opt_perm(const char *op, u32 request, struct socket *sock, int level, 51 int optname); 52int aa_unix_file_perm(const struct cred *subj_cred, struct aa_label *label, 53 const char *op, u32 request, struct file *file); 54 55#endif /* __AA_AF_UNIX_H */
~/
Read-only file preview.