⬢ DragonFlyBSD Kernel Audit
DF-3386 / fix.diff
← back to finding ↓ download raw
--- a/sys/net/altq/altq_cbq.c
+++ b/sys/net/altq/altq_cbq.c
@@ -190,6 +190,7 @@
 static void
 get_class_stats(class_stats_t *statsp, struct rm_class *cl)
 {
+	statsp->handle		= cl->stats_.handle;
 	statsp->xmit_cnt	= cl->stats_.xmit_cnt;
 	statsp->drop_cnt	= cl->stats_.drop_cnt;
 	statsp->over		= cl->stats_.over;
@@ -477,6 +478,9 @@
 	if (*nbytes < sizeof(stats))
 		return (EINVAL);
 
+	/* red[3] is only filled for RED/RIO queues; do not leak stack */
+	bzero(&stats, sizeof(stats));
+
 	ifnet_lock();
 
 	/* XXX not MP safe */