summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormartin <martin@NetBSD.org>2022-08-03 11:01:51 +0000
committermartin <martin@NetBSD.org>2022-08-03 11:01:51 +0000
commit6fe4a01f01d3fb44a5a91090b4d150a3bd1b326a (patch)
tree312bdc34180075c6b078b32934a7c62bf56612c4
parentcda8ab79740c7e5c9119202196ab3d3975d90f9a (diff)
Pull up following revision(s) (requested by riastradh in ticket #1488):
sys/altq/altq_hfsc.c: revision 1.29 sys/altq/altq_priq.c: revision 1.27 sys/altq: Memset zero before copyout. Just in case of uninitialized padding which would lead to kernel stack disclosure. If the compiler can prove the memset redundant then it can optimize it away; otherwise better safe than sorry.
-rw-r--r--sys/altq/altq_hfsc.c5
-rw-r--r--sys/altq/altq_priq.c7
2 files changed, 6 insertions, 6 deletions
diff --git a/sys/altq/altq_hfsc.c b/sys/altq/altq_hfsc.c
index 96cfa7f878d..6a04fc20489 100644
--- a/sys/altq/altq_hfsc.c
+++ b/sys/altq/altq_hfsc.c
@@ -1,4 +1,4 @@
-/* $NetBSD: altq_hfsc.c,v 1.28 2018/11/15 10:23:55 maxv Exp $ */
+/* $NetBSD: altq_hfsc.c,v 1.28.4.1 2022/08/03 11:01:51 martin Exp $ */
/* $KAME: altq_hfsc.c,v 1.26 2005/04/13 03:44:24 suz Exp $ */
/*
@@ -43,7 +43,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: altq_hfsc.c,v 1.28 2018/11/15 10:23:55 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: altq_hfsc.c,v 1.28.4.1 2022/08/03 11:01:51 martin Exp $");
#ifdef _KERNEL_OPT
#include "opt_altq.h"
@@ -2182,6 +2182,7 @@ hfsccmd_class_stats(struct hfsc_class_stats *ap)
usp = ap->stats;
for (n = 0; cl != NULL && n < nclasses; cl = hfsc_nextclass(cl), n++) {
+ memset(&stats, 0, sizeof(stats));
get_class_stats(&stats, cl);
if ((error = copyout((void *)&stats, (void *)usp++,
diff --git a/sys/altq/altq_priq.c b/sys/altq/altq_priq.c
index 7e8cd57f5a0..93176a32647 100644
--- a/sys/altq/altq_priq.c
+++ b/sys/altq/altq_priq.c
@@ -1,4 +1,4 @@
-/* $NetBSD: altq_priq.c,v 1.26 2018/11/15 10:23:55 maxv Exp $ */
+/* $NetBSD: altq_priq.c,v 1.26.4.1 2022/08/03 11:01:51 martin Exp $ */
/* $KAME: altq_priq.c,v 1.13 2005/04/13 03:44:25 suz Exp $ */
/*
* Copyright (C) 2000-2003
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: altq_priq.c,v 1.26 2018/11/15 10:23:55 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: altq_priq.c,v 1.26.4.1 2022/08/03 11:01:51 martin Exp $");
#ifdef _KERNEL_OPT
#include "opt_altq.h"
@@ -958,10 +958,9 @@ priqcmd_class_stats(struct priq_class_stats *ap)
usp = ap->stats;
for (pri = 0; pri <= pif->pif_maxpri; pri++) {
cl = pif->pif_classes[pri];
+ memset(&stats, 0, sizeof(stats));
if (cl != NULL)
get_class_stats(&stats, cl);
- else
- memset(&stats, 0, sizeof(stats));
if ((error = copyout((void *)&stats, (void *)usp++,
sizeof(stats))) != 0)
return (error);