BSD 4.1 did not have an argument for TIOCFLUSH, BSD 4.2 added it. There
are still a lot of applications out there that pass a NULL argument to
TIOCFLUSH, so we should rather cope with it.
---
 sysdeps/mach/hurd/ioctl.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sysdeps/mach/hurd/ioctl.c b/sysdeps/mach/hurd/ioctl.c
index 662e8ee919..0d5bc176d1 100644
--- a/sysdeps/mach/hurd/ioctl.c
+++ b/sysdeps/mach/hurd/ioctl.c
@@ -113,6 +113,10 @@ __ioctl (int fd, unsigned long int request, ...)
          /* We don't want to advance ARG since it will be used to copy out
             too if IOC_OUT is also set.  */
          void *argptr = arg;
+         int zero = 0;
+
+         if (request == TIOCFLUSH && !arg)
+           arg = &zero;
 
          /* Pack an argument into the message buffer.  */
          void in (unsigned int count, enum __ioctl_datum type)
-- 
2.30.0


Reply via email to