diff options
| author | Shivank Garg <shivank@freebsd.org> | 2023-07-25 20:27:06 +0000 |
|---|---|---|
| committer | Bjoern A. Zeeb <bz@FreeBSD.org> | 2023-07-26 00:07:57 +0000 |
| commit | 215bab7924f6c8e133a96431b3e2176d5fae1eff (patch) | |
| tree | 78c32ee058e2181259105895e111211a534bd038 /sys/netinet/in.c | |
| parent | a1b67573130114257fdd443c4ec9b54fbe2e5843 (diff) | |
Diffstat (limited to 'sys/netinet/in.c')
| -rw-r--r-- | sys/netinet/in.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/netinet/in.c b/sys/netinet/in.c index fa0d311bb563..76fd0c7a8281 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -77,6 +77,10 @@ __FBSDID("$FreeBSD$"); #include <netinet/udp.h> #include <netinet/udp_var.h> +#ifdef MAC +#include <security/mac/mac_framework.h> +#endif + static int in_aifaddr_ioctl(u_long, caddr_t, struct ifnet *, struct ucred *); static int in_difaddr_ioctl(u_long, caddr_t, struct ifnet *, struct ucred *); static int in_gifaddr_ioctl(u_long, caddr_t, struct ifnet *, struct ucred *); @@ -487,6 +491,13 @@ in_aifaddr_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp, struct ucred *cred if (vhid != 0 && carp_attach_p == NULL) return (EPROTONOSUPPORT); +#ifdef MAC + /* Check if a MAC policy disallows setting the IPv4 address. */ + error = mac_inet_check_add_addr(cred, &addr->sin_addr, ifp); + if (error != 0) + return (error); +#endif + /* * See whether address already exist. */ |
