[hurd, commited] hurd: Evaluate fd before entering the critical section

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[hurd, commited] hurd: Evaluate fd before entering the critical section

Samuel Thibault
* sysdeps/hurd/include/hurd/fd.h (HURD_FD_PORT_USE_CANCEL): Evaluate fd
before calling _hurd_critical_section_lock.
---
 sysdeps/hurd/include/hurd/fd.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sysdeps/hurd/include/hurd/fd.h b/sysdeps/hurd/include/hurd/fd.h
index 3a6cdc7f36..1985b6fbb2 100644
--- a/sysdeps/hurd/include/hurd/fd.h
+++ b/sysdeps/hurd/include/hurd/fd.h
@@ -20,10 +20,11 @@ extern void _hurd_fd_port_use_cleanup (void *arg);
 /* Like HURD_FD_PORT_USE, but cleans fd on cancel.  */
 #define HURD_FD_PORT_USE_CANCEL(fd, expr)      \
   ({ error_t __result;      \
-     void *__crit = _hurd_critical_section_lock ();      \
      struct _hurd_fd_port_use_data __d;      \
      io_t port, ctty;      \
+     void *__crit;      \
      __d.d = (fd);      \
+     __crit = _hurd_critical_section_lock ();      \
      __spin_lock (&__d.d->port.lock);      \
      if (__d.d->port.port == MACH_PORT_NULL)      \
        {      \
--
2.27.0