summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2016-11-21 10:47:38 +0000
committerkib <kib@FreeBSD.org>2016-11-21 10:47:38 +0000
commit799b07bf73e9688a8427774bc6e5c8ac50289d36 (patch)
tree3b551b501aa8a9951c7835acad83832f5874dbc1 /sys/kern
parent127d4fb179cbcc20d23d875bd762df151f4095fd (diff)
downloadFreeBSD-src-799b07bf73e9688a8427774bc6e5c8ac50289d36.zip
FreeBSD-src-799b07bf73e9688a8427774bc6e5c8ac50289d36.tar.gz
MFC r308642:
Initialize reserved bytes in struct mq_attr. PR: 214488
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/uipc_mqueue.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/kern/uipc_mqueue.c b/sys/kern/uipc_mqueue.c
index 8ddf356..4028694 100644
--- a/sys/kern/uipc_mqueue.c
+++ b/sys/kern/uipc_mqueue.c
@@ -2186,10 +2186,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);
}
@@ -2723,10 +2723,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);
OpenPOWER on IntegriCloud