From d63387d81d575ba8187345d216070595bd58cb2b Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 7 Jul 2020 22:09:29 +0200 Subject: hurd: Evaluate fd before entering the critical section * 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) \ { \ -- cgit v1.2.3