From 323b48b975e5b305a5aaa5046ef1dc655fb1deba Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 10 Oct 2018 13:20:04 +0200 Subject: [PATCH] Cygwin: lseek: return ESPIPE rather than EINVAL when called on a fifo Thanks to Henri for tracking this down: https://cygwin.com/ml/cygwin/2018-10/msg00062.html Signed-off-by: Corinna Vinschen --- winsup/cygwin/fhandler.h | 1 + winsup/cygwin/fhandler_fifo.cc | 8 ++++++++ winsup/cygwin/release/2.11.2 | 13 +++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 winsup/cygwin/release/2.11.2 diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index b946dddf4..2cc99d713 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -1237,6 +1237,7 @@ class fhandler_fifo: public fhandler_base_overlapped public: fhandler_fifo (); int open (int, mode_t); + off_t lseek (off_t offset, int whence); int close (); int dup (fhandler_base *child, int); bool isfifo () const { return true; } diff --git a/winsup/cygwin/fhandler_fifo.cc b/winsup/cygwin/fhandler_fifo.cc index 642949aea..5733ec778 100644 --- a/winsup/cygwin/fhandler_fifo.cc +++ b/winsup/cygwin/fhandler_fifo.cc @@ -221,6 +221,14 @@ out: return res == success; } +off_t +fhandler_fifo::lseek (off_t offset, int whence) +{ + debug_printf ("(%D, %d)", offset, whence); + set_errno (ESPIPE); + return -1; +} + bool fhandler_fifo::wait (HANDLE h) { diff --git a/winsup/cygwin/release/2.11.2 b/winsup/cygwin/release/2.11.2 new file mode 100644 index 000000000..c8d81d45b --- /dev/null +++ b/winsup/cygwin/release/2.11.2 @@ -0,0 +1,13 @@ +What's new: +----------- + + +What changed: +------------- + + +Bug Fixes +--------- + +- Return ESPIPE rather than EINVAL from lseek on a fifo. + Addresses: https://cygwin.com/ml/cygwin/2018-10/msg00019.html