diff options
author | kib <kib@FreeBSD.org> | 2016-11-21 10:47:38 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2016-11-21 10:47:38 +0000 |
commit | 799b07bf73e9688a8427774bc6e5c8ac50289d36 (patch) | |
tree | 3b551b501aa8a9951c7835acad83832f5874dbc1 /sys/kern | |
parent | 127d4fb179cbcc20d23d875bd762df151f4095fd (diff) | |
download | FreeBSD-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.c | 11 |
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); |