Module Name: src Committed By: martin Date: Wed Aug 3 11:01:51 UTC 2022
Modified Files: src/sys/altq [netbsd-9]: altq_hfsc.c altq_priq.c Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.28.4.1 src/sys/altq/altq_hfsc.c cvs rdiff -u -r1.26 -r1.26.4.1 src/sys/altq/altq_priq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/altq/altq_hfsc.c diff -u src/sys/altq/altq_hfsc.c:1.28 src/sys/altq/altq_hfsc.c:1.28.4.1 --- src/sys/altq/altq_hfsc.c:1.28 Thu Nov 15 10:23:55 2018 +++ src/sys/altq/altq_hfsc.c Wed Aug 3 11:01:51 2022 @@ -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_st 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++, Index: src/sys/altq/altq_priq.c diff -u src/sys/altq/altq_priq.c:1.26 src/sys/altq/altq_priq.c:1.26.4.1 --- src/sys/altq/altq_priq.c:1.26 Thu Nov 15 10:23:55 2018 +++ src/sys/altq/altq_priq.c Wed Aug 3 11:01:51 2022 @@ -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_st 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);