diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2016-11-21 10:44:40 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2016-11-21 10:44:40 +0000 |
commit | 83f857f9bff2d84a3edab4de69b229cb85717f7d (patch) | |
tree | 47b29f29664c12cdba3994617fceae895d1ab01a | |
parent | 3a4a0828bbda3c4f0c674db42011802a38f527fd (diff) |
Notes
-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 a04569e2eea1..488650190a3f 100644 --- a/sys/kern/uipc_mqueue.c +++ b/sys/kern/uipc_mqueue.c @@ -2242,10 +2242,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); } @@ -2759,10 +2759,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); |