From: Samuel Thibault Date: Tue, 7 Jul 2020 20:09:29 +0000 (+0200) Subject: hurd: Evaluate fd before entering the critical section X-Git-Tag: glibc-2.32~113 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d63387d81d575ba8187345d216070595bd58cb2b;p=thirdparty%2Fglibc.git 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. --- diff --git a/sysdeps/hurd/include/hurd/fd.h b/sysdeps/hurd/include/hurd/fd.h index 3a6cdc7f360..1985b6fbb26 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) \ { \