diff --git a/winsup/cygwin/fhandler_mqueue.cc b/winsup/cygwin/fhandler_mqueue.cc index 6fc17c28c..5f97264cd 100644 --- a/winsup/cygwin/fhandler_mqueue.cc +++ b/winsup/cygwin/fhandler_mqueue.cc @@ -180,9 +180,8 @@ fhandler_mqueue::close () NtClose (mqinfo ()->mqi_waitsend); NtClose (mqinfo ()->mqi_waitrecv); NtClose (mqinfo ()->mqi_lock); - ret = 0; } - __except (EFAULT) {} + __except (0) {} __endtry - return ret; + return 0; } diff --git a/winsup/cygwin/posix_ipc.cc b/winsup/cygwin/posix_ipc.cc index 8101a28f9..1f913c8d7 100644 --- a/winsup/cygwin/posix_ipc.cc +++ b/winsup/cygwin/posix_ipc.cc @@ -882,13 +882,10 @@ mq_timedreceive (mqd_t mqd, char *ptr, size_t maxlen, unsigned int *priop, extern "C" int mq_close (mqd_t mqd) { - struct mq_info *mqinfo; - __try { cygheap_fdget fd ((int) mqd, true); - mqinfo = get_mqinfo (fd); - if (mqinfo->mqi_magic != MQI_MAGIC) + if (!fd->is_mqueue ()) { set_errno (EBADF); __leave;