aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHajimu UMEMOTO <ume@FreeBSD.org>2002-10-17 17:42:46 +0000
committerHajimu UMEMOTO <ume@FreeBSD.org>2002-10-17 17:42:46 +0000
commit3bb61ca6698e90bf271ec0ee076c41b7730541e1 (patch)
tree9414d21a62827f715a698d32bf9ec24138b36918
parent21fb391fdb8c27c038c9295bb17213ceb0acd694 (diff)
Notes
-rw-r--r--sys/net/if_gif.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/sys/net/if_gif.c b/sys/net/if_gif.c
index a3d6be3490c50..6186b07c2550c 100644
--- a/sys/net/if_gif.c
+++ b/sys/net/if_gif.c
@@ -278,6 +278,10 @@ gif_encapcheck(m, off, proto, arg)
return 0;
}
+ /* Bail on short packets */
+ if (m->m_pkthdr.len < sizeof(ip))
+ return 0;
+
m_copydata(m, 0, sizeof(ip), (caddr_t)&ip);
switch (ip.ip_v) {
@@ -401,7 +405,7 @@ gif_input(m, af, ifp)
struct ifnet *ifp;
{
int isr;
- struct ifqueue *ifq = 0;
+ struct ifqueue *ifq = NULL;
if (ifp == NULL) {
/* just in case */
@@ -491,7 +495,10 @@ gif_ioctl(ifp, cmd, data)
struct ifreq *ifr = (struct ifreq*)data;
int error = 0, size;
struct sockaddr *dst, *src;
-
+#ifdef SIOCSIFMTU /* xxx */
+ u_long mtu;
+#endif
+
switch (cmd) {
case SIOCSIFADDR:
ifp->if_flags |= IFF_UP;
@@ -509,18 +516,16 @@ gif_ioctl(ifp, cmd, data)
break;
case SIOCSIFMTU:
- {
- u_long mtu;
- mtu = ifr->ifr_mtu;
- if (mtu < GIF_MTU_MIN || mtu > GIF_MTU_MAX) {
- return (EINVAL);
- }
- ifp->if_mtu = mtu;
- }
+ mtu = ifr->ifr_mtu;
+ if (mtu < GIF_MTU_MIN || mtu > GIF_MTU_MAX)
+ return (EINVAL);
+ ifp->if_mtu = mtu;
break;
#endif /* SIOCSIFMTU */
+#ifdef INET
case SIOCSIFPHYADDR:
+#endif
#ifdef INET6
case SIOCSIFPHYADDR_IN6:
#endif /* INET6 */