From 77de00a89643abb07b73302cb7f770a55480e732 Mon Sep 17 00:00:00 2001 From: dlg Date: Sun, 18 Feb 2018 23:53:17 +0000 Subject: [PATCH] don't allow configuration of non-ipv4 addresses. i found out how to do this while reading the freebsd stf(4) driver. --- sys/net/if_mobileip.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sys/net/if_mobileip.c b/sys/net/if_mobileip.c index 24eb6da11bd..dc740714d18 100644 --- a/sys/net/if_mobileip.c +++ b/sys/net/if_mobileip.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_mobileip.c,v 1.7 2018/02/12 02:55:40 dlg Exp $ */ +/* $OpenBSD: if_mobileip.c,v 1.8 2018/02/18 23:53:17 dlg Exp $ */ /* * Copyright (c) 2016 David Gwynne @@ -355,11 +355,16 @@ mobileip_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) { struct mobileip_softc *sc = ifp->if_softc; struct ifreq *ifr = (struct ifreq *)data; + struct ifaddr *ifa = (struct ifaddr *)data; int error = 0; switch(cmd) { case SIOCSIFADDR: - /* XXX restrict to AF_INET */ + if (ifa->ifa_addr->sa_family != AF_INET) { + error = EAFNOSUPPORT; + break; + } + ifp->if_flags |= IFF_UP; /* FALLTHROUGH */ case SIOCSIFFLAGS: -- 2.20.1