Page MenuHomeFreeBSD

D34627.1792580934.diff
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

D34627.1792580934.diff

Index: sys/netinet/ip_mroute.h
===================================================================
--- sys/netinet/ip_mroute.h
+++ sys/netinet/ip_mroute.h
@@ -265,6 +265,7 @@
u_long v_bytes_in; /* # bytes in on interface */
u_long v_bytes_out; /* # bytes out on interface */
#ifdef _KERNEL
+#define MROUTE_VIF_SYSCTL_LEN __offsetof(struct vif, v_spin)
struct mtx v_spin; /* Spin mutex for pkt stats */
char v_spin_name[32];
#endif
Index: sys/netinet/ip_mroute.c
===================================================================
--- sys/netinet/ip_mroute.c
+++ sys/netinet/ip_mroute.c
@@ -2722,18 +2722,23 @@
static int
sysctl_viflist(SYSCTL_HANDLER_ARGS)
{
- int error;
+ int error, i;
if (req->newptr)
return (EPERM);
if (V_viftable == NULL) /* XXX unlocked */
return (0);
- error = sysctl_wire_old_buffer(req, sizeof(*V_viftable) * MAXVIFS);
+ error = sysctl_wire_old_buffer(req, MROUTE_VIF_SYSCTL_LEN * MAXVIFS);
if (error)
return (error);
MRW_RLOCK();
- error = SYSCTL_OUT(req, V_viftable, sizeof(*V_viftable) * MAXVIFS);
+ /* Copy out user-visible portion of vif entry. */
+ for (i = 0; i < MAXVIFS; i++) {
+ error = SYSCTL_OUT(req, &V_viftable[i], MROUTE_VIF_SYSCTL_LEN);
+ if (error)
+ break;
+ }
MRW_RUNLOCK();
return (error);
}

File Metadata

Mime Type
text/plain
Expires
Wed, Oct 21, 11:08 AM (14 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30587242
Default Alt Text
D34627.1792580934.diff (1 KB)

Event Timeline