From 0508b67c71c3b7e397e7618ed4cff4707126ab32 Mon Sep 17 00:00:00 2001 From: Martin Pieuchot Date: Thu, 15 Aug 2013 09:18:38 +0000 Subject: Stop defining SIOC{S,G}ETVLAN as SIOC{S,G}IFGENERIC because they are two differents ioctls manipulating structures of a different size. In particular this prevents vlan(4) to handle pppoe(4)-specific ioctls and vice versa, that could lead to smashing the stack of the caller. Issue originally found by David Hill when compiling ifconfig with clang. Note that this is an ABI break but we're riding a biger dragon right now. ok mikeb@, kettenis@, sthen@ --- sys/net/if_vlan_var.h | 4 +--- sys/sys/sockio.h | 5 +++-- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'sys') diff --git a/sys/net/if_vlan_var.h b/sys/net/if_vlan_var.h index a1d2679671b..ae65ddca217 100644 --- a/sys/net/if_vlan_var.h +++ b/sys/net/if_vlan_var.h @@ -1,4 +1,4 @@ -/* $OpenBSD: if_vlan_var.h,v 1.20 2010/06/03 16:15:00 naddy Exp $ */ +/* $OpenBSD: if_vlan_var.h,v 1.21 2013/08/15 09:18:37 mpi Exp $ */ /* * Copyright 1998 Massachusetts Institute of Technology @@ -95,8 +95,6 @@ struct vlanreq { char vlr_parent[IFNAMSIZ]; u_short vlr_tag; }; -#define SIOCSETVLAN SIOCSIFGENERIC -#define SIOCGETVLAN SIOCGIFGENERIC #ifdef _KERNEL extern int vlan_input(struct ether_header *eh, struct mbuf *m); diff --git a/sys/sys/sockio.h b/sys/sys/sockio.h index 313cd7ff424..f464ede2492 100644 --- a/sys/sys/sockio.h +++ b/sys/sys/sockio.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sockio.h,v 1.50 2012/11/23 20:12:03 sthen Exp $ */ +/* $OpenBSD: sockio.h,v 1.51 2013/08/15 09:18:37 mpi Exp $ */ /* $NetBSD: sockio.h,v 1.5 1995/08/23 00:40:47 thorpej Exp $ */ /*- @@ -161,7 +161,8 @@ #define SIOCSIFTIMESLOT _IOW('i', 133, struct ifreq) /* set ifnet timeslot */ #define SIOCGIFTIMESLOT _IOWR('i', 134, struct ifreq) /* get ifnet timeslot */ -/* 143 and 144 (SIOC[GS]VLANPRIO) were removed, do not reuse it before 5.1 */ +#define SIOCSETVLAN _IOW('i', 143, struct ifreq) /* set vlan parent if */ +#define SIOCGETVLAN _IOWR('i', 144, struct ifreq) /* get vlan parent if */ #define SIOCSETLABEL _IOW('i', 153, struct ifreq) /* set MPLS label */ #define SIOCGETLABEL _IOW('i', 154, struct ifreq) /* get MPLS label */ -- cgit v1.2.3