Page MenuHomeFreeBSD

D18333.id51114.diff
No OneTemporary

D18333.id51114.diff

Index: head/sys/net/if.h
===================================================================
--- head/sys/net/if.h
+++ head/sys/net/if.h
@@ -271,6 +271,7 @@
int ifm_addrs; /* like rtm_addrs */
int ifm_flags; /* value of if_flags */
u_short ifm_index; /* index for associated ifp */
+ u_short _ifm_spare1;
struct if_data ifm_data;/* statistics and other data about if */
};
@@ -296,6 +297,7 @@
u_short _ifm_spare1; /* spare space to grow if_index, see if_var.h */
u_short ifm_len; /* length of if_msghdrl incl. if_data */
u_short ifm_data_off; /* offset of if_data from beginning */
+ int _ifm_spare2;
struct if_data ifm_data;/* statistics and other data about if */
};
@@ -311,6 +313,7 @@
int ifam_addrs; /* like rtm_addrs */
int ifam_flags; /* value of ifa_flags */
u_short ifam_index; /* index for associated ifp */
+ u_short _ifam_spare1;
int ifam_metric; /* value of ifa_ifp->if_metric */
};
@@ -352,6 +355,7 @@
int ifmam_addrs; /* like rtm_addrs */
int ifmam_flags; /* value of ifa_flags */
u_short ifmam_index; /* index for associated ifp */
+ u_short _ifmam_spare1;
};
/*
Index: head/sys/net/route.h
===================================================================
--- head/sys/net/route.h
+++ head/sys/net/route.h
@@ -251,6 +251,7 @@
u_char rtm_version; /* future binary compatibility */
u_char rtm_type; /* message type */
u_short rtm_index; /* index for associated ifp */
+ u_short _rtm_spare1;
int rtm_flags; /* flags, incl. kern & message, e.g. DONE */
int rtm_addrs; /* bitmask identifying sockaddrs in msg */
pid_t rtm_pid; /* identify sender */
Index: head/sys/net/rtsock.c
===================================================================
--- head/sys/net/rtsock.c
+++ head/sys/net/rtsock.c
@@ -83,6 +83,7 @@
int32_t ifm_addrs;
int32_t ifm_flags;
uint16_t ifm_index;
+ uint16_t _ifm_spare1;
struct if_data ifm_data;
};
@@ -96,6 +97,7 @@
uint16_t _ifm_spare1;
uint16_t ifm_len;
uint16_t ifm_data_off;
+ uint32_t _ifm_spare2;
struct if_data ifm_data;
};
@@ -1219,8 +1221,11 @@
dlen = ALIGN(len) - len;
if (buflen < dlen)
cp = NULL;
- else
+ else {
+ bzero(cp, dlen);
+ cp += dlen;
buflen -= dlen;
+ }
}
len = ALIGN(len);
@@ -1577,6 +1582,8 @@
if (w->w_req && w->w_tmem) {
struct rt_msghdr *rtm = (struct rt_msghdr *)w->w_tmem;
+ bzero(&rtm->rtm_index,
+ sizeof(*rtm) - offsetof(struct rt_msghdr, rtm_index));
if (rt->rt_flags & RTF_GWFLAG_COMPAT)
rtm->rtm_flags = RTF_GATEWAY |
(rt->rt_flags & ~RTF_GWFLAG_COMPAT);
@@ -1584,7 +1591,6 @@
rtm->rtm_flags = rt->rt_flags;
rt_getmetrics(rt, &rtm->rtm_rmx);
rtm->rtm_index = rt->rt_ifp->if_index;
- rtm->rtm_errno = rtm->rtm_pid = rtm->rtm_seq = 0;
rtm->rtm_addrs = info.rti_addrs;
error = SYSCTL_OUT(w->w_req, (caddr_t)rtm, size);
return (error);
@@ -1612,6 +1618,7 @@
ifm32->_ifm_spare1 = 0;
ifm32->ifm_len = sizeof(*ifm32);
ifm32->ifm_data_off = offsetof(struct if_msghdrl32, ifm_data);
+ ifm32->_ifm_spare2 = 0;
ifd = &ifm32->ifm_data;
} else
#endif
@@ -1622,6 +1629,7 @@
ifm->_ifm_spare1 = 0;
ifm->ifm_len = sizeof(*ifm);
ifm->ifm_data_off = offsetof(struct if_msghdrl, ifm_data);
+ ifm->_ifm_spare2 = 0;
ifd = &ifm->ifm_data;
}
@@ -1647,6 +1655,7 @@
ifm32->ifm_addrs = info->rti_addrs;
ifm32->ifm_flags = ifp->if_flags | ifp->if_drv_flags;
ifm32->ifm_index = ifp->if_index;
+ ifm32->_ifm_spare1 = 0;
ifd = &ifm32->ifm_data;
} else
#endif
@@ -1654,6 +1663,7 @@
ifm->ifm_addrs = info->rti_addrs;
ifm->ifm_flags = ifp->if_flags | ifp->if_drv_flags;
ifm->ifm_index = ifp->if_index;
+ ifm->_ifm_spare1 = 0;
ifd = &ifm->ifm_data;
}
@@ -1722,6 +1732,7 @@
ifam->ifam_addrs = info->rti_addrs;
ifam->ifam_flags = ifa->ifa_flags;
ifam->ifam_index = ifa->ifa_ifp->if_index;
+ ifam->_ifam_spare1 = 0;
ifam->ifam_metric = ifa->ifa_ifp->if_metric;
return (SYSCTL_OUT(w->w_req, w->w_tmem, len));
@@ -1833,6 +1844,7 @@
ifmam->ifmam_index = ifma->ifma_ifp->if_index;
ifmam->ifmam_flags = 0;
ifmam->ifmam_addrs = info.rti_addrs;
+ ifmam->_ifmam_spare1 = 0;
error = SYSCTL_OUT(w->w_req, w->w_tmem, len);
if (error != 0)
break;

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 12, 7:50 PM (14 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
23638516
Default Alt Text
D18333.id51114.diff (4 KB)

Event Timeline