Remove SIOCSIFALIFETIME_IN6, which could not possibly have ever worked.

Problem reported in kern/35897 by Robert Elz.
This commit is contained in:
gdt 2007-09-11 19:54:51 +00:00
parent aebe6f5793
commit 8f7e0bd6a5
2 changed files with 6 additions and 39 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: in6.c,v 1.131 2007/07/19 20:48:56 dyoung Exp $ */
/* $NetBSD: in6.c,v 1.132 2007/09/11 19:54:51 gdt Exp $ */
/* $KAME: in6.c,v 1.198 2001/07/18 09:12:38 itojun Exp $ */
/*
@ -62,7 +62,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: in6.c,v 1.131 2007/07/19 20:48:56 dyoung Exp $");
__KERNEL_RCSID(0, "$NetBSD: in6.c,v 1.132 2007/09/11 19:54:51 gdt Exp $");
#include "opt_inet.h"
#include "opt_pfil_hooks.h"
@ -447,7 +447,6 @@ in6_control1(struct socket *so, u_long cmd, void *data, struct ifnet *ifp,
case SIOCSPFXFLUSH_IN6:
case SIOCSRTRFLUSH_IN6:
case SIOCGIFALIFETIME_IN6:
case SIOCSIFALIFETIME_IN6:
case SIOCGIFSTAT_IN6:
case SIOCGIFSTAT_ICMP6:
sa6 = &ifr->ifr_addr;
@ -512,26 +511,6 @@ in6_control1(struct socket *so, u_long cmd, void *data, struct ifnet *ifp,
if (ia == NULL)
return EADDRNOTAVAIL;
break;
case SIOCSIFALIFETIME_IN6:
{
struct in6_addrlifetime *lt;
if (!privileged)
return EPERM;
if (ia == NULL)
return EADDRNOTAVAIL;
/* sanity for overflow - beware unsigned */
lt = &ifr->ifr_ifru.ifru_lifetime;
if (lt->ia6t_vltime != ND6_INFINITE_LIFETIME
&& lt->ia6t_vltime + time_second < time_second) {
return EINVAL;
}
if (lt->ia6t_pltime != ND6_INFINITE_LIFETIME
&& lt->ia6t_pltime + time_second < time_second) {
return EINVAL;
}
break;
}
}
switch (cmd) {
@ -620,21 +599,6 @@ in6_control1(struct socket *so, u_long cmd, void *data, struct ifnet *ifp,
}
break;
case SIOCSIFALIFETIME_IN6:
ia->ia6_lifetime = ifr->ifr_ifru.ifru_lifetime;
/* for sanity */
if (ia->ia6_lifetime.ia6t_vltime != ND6_INFINITE_LIFETIME) {
ia->ia6_lifetime.ia6t_expire =
time_second + ia->ia6_lifetime.ia6t_vltime;
} else
ia->ia6_lifetime.ia6t_expire = 0;
if (ia->ia6_lifetime.ia6t_pltime != ND6_INFINITE_LIFETIME) {
ia->ia6_lifetime.ia6t_preferred =
time_second + ia->ia6_lifetime.ia6t_pltime;
} else
ia->ia6_lifetime.ia6t_preferred = 0;
break;
case SIOCAIFADDR_IN6:
{
int i;

View File

@ -1,4 +1,4 @@
/* $NetBSD: in6_var.h,v 1.52 2007/07/19 20:48:56 dyoung Exp $ */
/* $NetBSD: in6_var.h,v 1.53 2007/09/11 19:54:51 gdt Exp $ */
/* $KAME: in6_var.h,v 1.81 2002/06/08 11:16:51 itojun Exp $ */
/*
@ -419,7 +419,10 @@ struct in6_rrenumreq {
#define SIOCSRTRFLUSH_IN6 _IOWR('i', 80, struct in6_ifreq)
#define SIOCGIFALIFETIME_IN6 _IOWR('i', 81, struct in6_ifreq)
#if 0
/* withdrawn - do not reuse number 82 */
#define SIOCSIFALIFETIME_IN6 _IOWR('i', 82, struct in6_ifreq)
#endif
#define SIOCGIFSTAT_IN6 _IOWR('i', 83, struct in6_ifreq)
#define SIOCGIFSTAT_ICMP6 _IOWR('i', 84, struct in6_ifreq)