diff options
| author | martin <martin@NetBSD.org> | 2022-08-03 11:01:51 +0000 |
|---|---|---|
| committer | martin <martin@NetBSD.org> | 2022-08-03 11:01:51 +0000 |
| commit | 6fe4a01f01d3fb44a5a91090b4d150a3bd1b326a (patch) | |
| tree | 312bdc34180075c6b078b32934a7c62bf56612c4 | |
| parent | cda8ab79740c7e5c9119202196ab3d3975d90f9a (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.c | 5 | ||||
| -rw-r--r-- | sys/altq/altq_priq.c | 7 |
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); |
