From 3c73168a13fea7d687928e152bd1ba4576df957c Mon Sep 17 00:00:00 2001 From: kib Date: Mon, 21 Nov 2016 10:49:37 +0000 Subject: [PATCH] MFC r308642: Initialize reserved bytes in struct mq_attr. PR: 214488 git-svn-id: svn://svn.freebsd.org/base/stable/9@308920 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- sys/kern/uipc_mqueue.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/sys/kern/uipc_mqueue.c b/sys/kern/uipc_mqueue.c index 44b8da393..eab39d27d 100644 --- a/sys/kern/uipc_mqueue.c +++ b/sys/kern/uipc_mqueue.c @@ -2177,10 +2177,10 @@ sys_kmq_setattr(struct thread *td, struct kmq_setattr_args *uap) } error = kern_kmq_setattr(td, uap->mqd, uap->attr != NULL ? &attr : NULL, &oattr); - if (error != 0) - return (error); - if (uap->oattr != NULL) + if (error == 0 && uap->oattr != NULL) { + bzero(oattr.__reserved, sizeof(oattr.__reserved)); error = copyout(&oattr, uap->oattr, sizeof(oattr)); + } return (error); } @@ -2707,10 +2707,9 @@ freebsd32_kmq_setattr(struct thread *td, struct freebsd32_kmq_setattr_args *uap) } error = kern_kmq_setattr(td, uap->mqd, uap->attr != NULL ? &attr : NULL, &oattr); - if (error != 0) - return (error); - if (uap->oattr != NULL) { + if (error == 0 && uap->oattr != NULL) { mq_attr_to32(&oattr, &oattr32); + bzero(oattr32.__reserved, sizeof(oattr32.__reserved)); error = copyout(&oattr32, uap->oattr, sizeof(oattr32)); } return (error); -- 2.45.0